Maven install知道构建生成的所有工件,并将它们本地推送。
将项目的主要工件以及生命周期中其他插件附加的任何其他工件安装到本地存储库。
帮助插件可能支持这一点,但不确定正确的表达式
EventId EquipApprovedDate EquipCalDueDate ThemeColor remaining total
1 2018-04-17 2018-05-31 green 36 44
2 2018-04-11 2018-04-27 red 2 16
3 2020-04-20 2020-05-28 green 764 38
4 2018-04-11 2018-05-15 orange 20 34
8 2019-04-20 2019-05-31 green 401 41
有没有办法从maven命令获取路径列表?
我想生成一个特定工件列表,以便在构建过程中保留为工件,而不会发布到maven存储库。
答案 0 :(得分:0)
默认情况下,Maven存储库中的工件路径将遵循以下公式:
groupId
使用句号作为分隔符分解为文件夹,然后artifactId
和version
构成最后两个文件夹artifactId
和version
组成,类型由packaging
所以,假设您有一个主模块pom.xml
的多模块项目:
<groupId>com.foobar.my.business</group>
<artifactId>myApp</artifactId>
<version>1.0-SNAPSHOT</version>
它有两个子模块,第一个是创建REST端点的Web模块:
<parent>
<groupId>com.foobar.my.business</group>
<artifactId>myApp</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>myApp-web</artifactId>
<packaging>war</packaging>
第二个是持久层:
<parent>
<groupId>com.foobar.my.business</group>
<artifactId>myApp</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>myApp-persistence</artifactId>
<packaging>jar</packaging>
假设您的本地存储库来自~/.m2/repository
。然后,您的工件将保存在本地存储库中:
工件的最终构建名称和本地存储库位置可以修改。但您可以使用以下表达式来检查这些:
${settings.localRepository}
将返回本地存储库的路径。${project.build.finalName}
将返回最终构建工件名称。要以几乎正确的格式获取此列表,您可以运行:
mvn -q exec:exec -Dexec.executable="cmd" -Dexec.args="/C echo ${settings.localRepository}\${project.groupId}\${project.artifactId}\${project.version}\${project.build.finalName}.${project.packaging}"
mvn -q exec:exec -Dexec.executable='echo' -Dexec.args='${settings.localRepository}/${project.groupId}/${project.artifactId}/${project.version}/${project.build.finalName}.${project.packaging}'
然后你只需要修复groupId
中的句号。
还有一个mvn dependency:build-classpath
命令,它将显示文件系统上每个依赖项的位置,有时可以派上用场。