Maven部署特定工件

时间:2014-03-19 16:44:41

标签: java maven obfuscation

所以我正在使用Proguard插件来混淆我的一个罐子,然后再将它部署到Maven。我的目标是只将混淆的jar部署到Maven。

目前我注意到部署了两个罐子,myJar.jar和myJar-small.jar(来自proguard的混淆)。我已经确认我的Nexus索引在部署后包含它们和一个pom。问题是,当我将myJar作为maven依赖项添加到另一个项目时,未经模糊处理的jar被拉入项目,而不是混淆的jar。

是否有办法只上传混淆的jar或指定应该将哪个jar拉入其他项目?

我查看过Proguard选项here,但找不到太多帮助。

2 个答案:

答案 0 :(得分:3)

为了您自己的使用,在定义依赖项时,请添加值为small的分类器标记。

<dependency>
  <groupId>myGroup</groupId>
  <artifactId>myJar</artifactId>
  <scope>test</scope>
  <classifier>small</classifier> <!-- <<<<<< like this <<<<<< -->
</dependency>

对于发布,您可以使用新的分类器手动部署工件,如下所示:

http://maven.apache.org/plugins/maven-deploy-plugin/examples/deploying-with-classifiers.html

答案 1 :(得分:2)

我假设您使用Maven ProGaurd插件(http://pyx4me.com/pyx4me-maven-plugins/proguard-maven-plugin)。

如果将attach参数保留为其默认false值并且未为outjar设置任何内容,则原始工件将被模糊处理的工件覆盖。因此,只会部署模糊版本。