首页 > 解决方案 > maven-assembly-plugin - “useProjectArtifact”实际上是做什么的?

问题描述

我正在尝试将一个旧项目引入 maven 以简化构建和部署过程。

在项目中有一组java类需要与三组不同的资源捆绑到三个不同的.jar中。

试图遵循这一点:如何在禁用重新部署时发布多个配置文件项目我正在尝试使用 maven-assembly-plugin 在 assembly.xml 中使用三个执行来获取资源。

我希望在生成的 jar 中没有任何依赖项,只有我的类和我的资源。我添加了

   <dependencySets>
        <dependencySet>
            <unpack>true</unpack>
            <useProjectArtifact>true</useProjectArtifact>
        </dependencySet>
    </dependencySets>

到我的 assembly.xml 认为不使用任何<includes><excludes>这只会将我自己的类添加到 .jar,而不是现在我在 .jar 中也有所有依赖项。如果我删除它,我根本就没有任何课程——甚至我自己的课程也没有。我想要一个只有我自己的类但没有 pom 中的依赖项的 .jar。

我认为我误解了 的目的useProjectArtifact

我可以在不使用所有依赖项的情况下实现我想要的吗?还是 maven-assembly-plugin 不是要走的路?

pom.xml 的提取

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>3.3.0</version>
        <executions>
            <execution>
                <id>bundle-1</id>
                <phase>package</phase>
                <goals>
                    <goal>single</goal>
                </goals>
                <configuration>
                    <descriptors>                    
                       <descriptor>${project.basedir}/path/to/assembly.xml</descriptor>
                    </descriptors>
                </configuration>
            </execution>
            <execution>

标签: javamavenmaven-assembly-plugin

解决方案


推荐阅读