java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > maven-assembly-plugin报红

maven-assembly-plugin报红无法加载报错:Plugin ‘maven-assembly-plugin:‘ not found

作者:海若[MATRIX]

maven-assembly-plugin是一个常用的打包插件,但是在使用过程中经常会遇到各种报错,本文就来介绍一下maven-assembly-plugin报红无法加载报错,具有一定的参考价值

1.问题描述

maven pom.xml中maven-assembly-plugin报红,无法加载

2.pom文件build构建部分详解

  <build>
    <!--当项目没有规定目标(Maven2 叫做阶段)时的默认值-->
    <defaultGoal>install</defaultGoal>
    <!--build目标文件的存放目录,默认在 ${basedir}/target 目录-->
    <directory>${basedir}/target</directory>
    <finalName>${artifactId}-${version}</finalName>
    <filters>
      <filter>filters/filter1.properties</filter>
    </filters>
    <!--这个元素描述了项目相关的所有资源路径列表,例如和项目相关的属性文件,这些资源被包含在最终的打包文件里。-->    
    <resources>    
      <!--这个元素描述了项目相关或测试相关的所有资源路径-->    
      <resource>    
        <!-- 描述了资源的目标路径。该路径相对target/classes目录(例如${project.build.outputDirectory})。举个例 子,如果你想资源在特定的包里(   org.apache.maven.message,你就必须该元素设置为org/apache/maven /messages。然而,如果你只是想把资源放到源码目录结构里,就不需要该配置。-->    
        <targetPath/>    
        <!--是否使用参数值代替参数名。参数值取自properties元素或者文件里配置的属性,文件在filters元素里列出。-->    
        <filtering/>    
        <!--描述存放资源的目录,该路径相对POM路径-->    
        <directory/>    
        <!--包含的模式列表,例如**/*.xml.-->    
        <includes/>    
        <!--排除的模式列表,例如**/*.xml-->    
        <excludes/>    
      </resource>    
    </resources>    
    <!--这个元素描述了单元测试相关的所有资源路径,例如和单元测试相关的属性文件。-->    
    <testResources>    
      <!--这个元素描述了测试相关的所有资源路径,参见build/resources/resource元素的说明-->    
      <testResource>    
        <targetPath/>
        <filtering/>
        <directory/>
        <includes/>
        <excludes/>    
      </testResource>    
    </testResources>
<!-- 在build时,执行的插件,比较有用的部分,如使用jdk 8.0编译等等-->
    <plugins>
      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>2.5.3</version>
          <configuration>
              <tagBase>${git.conn}</tagBase>
              <branchBase>${git.conn}</branchBase>
              <username>${git.username}</username>
              <password>${git.password}</password>
          </configuration>
      </plugin>
      ...
    </plugins>
    <!--子项目可以引用的默认插件信息。该插件配置项直到被引用时才会被解析或绑定到生命周期。给定插件的任何本地配置都会覆盖这里的配置-->
    <pluginManagement>
      <plugins>
        ...
      </plugins>
    </pluginManagement>
  </build>
</project>

3.pom文件dependencies依赖部分详解

依赖关系:

<dependencies>  
    <dependency>  
      <groupId>junit</groupId>  
      <artifactId>junit</artifactId>  
      <version>4.0</version>  
      <type>jar</type>  
      <scope>test</scope>  
      <optional>true</optional>  
    </dependency>  
    ...  
  </dependencies>

groupId, artifactId, version:描述了依赖的项目唯一标志

可以通过以下方式进行安装:

使用以下的命令安装:

mvn install:install-file –Dfile=non-maven-proj.jar –DgroupId=some.group –DartifactId=non-maven-proj –Dversion=1创建自己的库,并配置,使用deploy:deploy-file

设置此依赖范围为system,定义一个系统路径。不提倡。

<dependencies>  
    <dependency>  
      <groupId>org.apache.maven</groupId>  
      <artifactId>maven-embedder</artifactId>  
      <version>2.0</version>  
      <exclusions>  
        <exclusion>  
          <groupId>org.apache.maven</groupId>  
          <artifactId>maven-core</artifactId>  
        </exclusion>  
      </exclusions>  
    </dependency>

表示项目maven-embedder需要项目maven-core,但我们不想引用maven-core

4.pom文件其他标签描述

<project>  
  <modelVersion>4.0.0</modelVersion>  
  <groupId>org.gene.demo</groupId>  
  <artifactId>my-parent</artifactId>  
  <version>2.0</version>  
  <packaging>pom</packaging>  
</project>

packaging 类型,需要pom用于parent和合成多个项目。我们需要增加相应的值给父pom,用于子项目继承。主要的元素如下:

<project>  
  <modelVersion>4.0.0</modelVersion>  
  <parent>  
    <groupId>org.gene.demo</groupId>  
    <artifactId>my-parent</artifactId>  
    <version>2.0</version>  
    <relativePath>../my-parent</relativePath>  
  </parent>  
  <artifactId>my-project</artifactId>  
</project>

relativePath可以不需要,但是用于指明parent的目录,用于快速查询。

dependencyManagement:
用于父项目配置共同的依赖关系,主要配置依赖包相同因素,如版本,scope。

合成(或者多个模块)
一个项目有多个模块,也叫做多重模块,或者合成项目。
如下的定义:

<project>  
  <modelVersion>4.0.0</modelVersion>  
  <groupId>org.gene.demo</groupId>  
  <artifactId>my-parent</artifactId>  
  <version>2.0</version>  
  <modules>  
    <module>my-project1</module>  
    <module>my-project2</module>  
  </modules>  
</project>

5.解决方案

由于,build中插件无法自动加载,在依赖中添加对应依赖更新后即可成功加载。

<dependencies>
    <dependency>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>3.0.0</version>
    </dependency>
</dependencies>

到此这篇关于maven-assembly-plugin报红无法加载报错:Plugin ‘maven-assembly-plugin:‘ not found的文章就介绍到这了,更多相关maven-assembly-plugin报红内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文