idea中maven项目开发

Maven项目pom.xml问题及解决方案
博客主要围绕Maven项目中pom.xml文件出现的问题展开,如找不到特定项目、无法导入Maven项目、程序包不存在等。针对这些问题给出了解决方案,包括指定spring仓库、调整Maven和IDEA版本、添加仓库等,还提及多模块项目选库及生成jar包的操作。

参考:https://blog.youkuaiyun.com/lixld/article/details/82284269

 

一、pom.xml文件问题

1、Project '''org.springframework.boot:spring-boot-starter-parent:2.1.12.RELEASE''' not found less... (Ctrl+F1) 
Inspects a Maven model for resolution problems.

解决方案为:

因为RELEASE版本是不稳定的,于是需要指定spring的仓库,在pom.xml最后,project里面添加如下代码,然后保存pom.xml文件,就会重新从repo.spring.io中引入jar包。添加如下:

<repositories>
        <repository>
            <id>spring-snapshots</id>
            <url>http://repo.spring.io/libs-snapshot</url>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>spring-snapshots</id>
            <url>http://repo.spring.io/libs-snapshot</url>
        </pluginRepository>
    </pluginRepositories>

2、如下依赖没有指定版本号,是因为添加了parent标签,spring-boot-starter-parent会为我们提供常用jar版本,

其实不是不用指定,是他们一指定好了。

自己指定版本号也可以,会覆盖官方版本,自己用maven helper查看一下有没有冲突即可。

 

3、  Unable to import maven project: See logs for details

之后再:Help->Show log in Explorer,查看:

1) No implementation for org.apache.maven.model.path.PathTranslator was bound.
  while locating org.apache.maven.model.path.PathTranslator
    for field at org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator.pathTranslator(Unknown Source)
  at org.codehaus.plexus.DefaultPlexusContainer$1.configure(DefaultPlexusContainer.java:350)

2) No implementation for org.apache.maven.model.path.UrlNormalizer was bound.
  while locating org.apache.maven.model.path.UrlNormalizer
    for field at org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator.urlNormalizer(Unknown Source)
  at org.codehaus.plexus.DefaultPlexusContainer$1.configure(DefaultPlexusContainer.java:350)

2 errors 

 

Maven和Intellij IDEA的版本对不上.重新找maven比idea要老就行。我的idea为2016.2.则再maven官网查

maven的Release notes中maven历史 Maven Releases History

2015-11-143.3.9announcerelease notesreference documentation

可以,下载即可

 

4、Error:(3, 32) java: 程序包org.springframework.boot不存在

解决方案:因为pom文件引入的org.springframework.boot版本过高

<!-- Spring Boot的核心   2.1.12.RELEASE 高,修改为 1.5.6.RELEASE  -->
  <parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.6.RELEASE</version>
  </parent>

 

<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.12.RELEASE </version>
  </parent>

  
<!-- springcloud版本声明 -->
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Dalston.SR3</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement> 

  <dependencies>
    <!-- 引入spring boot依赖 -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-jetty</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
    
    <!-- 引入eureka依赖 -->
    <dependency>  
        <groupId>org.springframework.cloud</groupId>  
        <artifactId>spring-cloud-starter-eureka</artifactId>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework.cloud</groupId>  
        <artifactId>spring-cloud-starter-eureka-server</artifactId>    
    </dependency>  
    
    <dependency>  
        <groupId>javax.servlet</groupId>  
        <artifactId>javax.servlet-api</artifactId>  
    </dependency>  
  </dependencies>

    <repositories>
        <repository>
            <id>spring-snapshots</id>
            <url>http://repo.spring.io/libs-snapshot</url>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>spring-snapshots</id>
            <url>http://repo.spring.io/libs-snapshot</url>
        </pluginRepository>
    </pluginRepositories>

 

 

 

如果出现:

depencency xxx: not found.

原因一、原因可能为未添加版本号:

 

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

修改为:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.2.2.RELEASE</version>
</dependency>

原因二、

在setting.xml文件中指了默认情况下,只会从 Central中下载,而镜像一般只会镜像central库,

所以就会导致上面的”Dependency 'xxxx‘ not found"情部了。

方法一、.在settings.xml中添加对应的仓库,

方法二、在pom.xml直接添加额外的仓库。推荐第二种,如下(在</project>之前添加)

<repositories>
    <repository>
        <id>JBoss repository</id>
        <url>https://repository.jboss.org/nexus/content/repositories/releases/</url>
    </repository>
</repositories>

 

------------------------------------------------------------------------

maven多模块项目,需要选择对应的maven库。

如选择在idea的右侧,Profiles中,对nexus等等工具打钩,即为选择,之后更新项目

 

 

如需生成jar包,则只需在对应项目的下面,Lifecycle中选择package或者其他即可

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值