【发布时间】:2018-02-14 08:27:26
【问题描述】:
我想使用 ProGuard(项目 A)混淆项目(jar)。但是,这个项目依赖于另一个战争(Project B),并使用了我在 B 中开发的一些类。
我使用了这个问题的解决方案:Build a jar from a maven project dependent on other project
但它不起作用,当我使用命令时
maven clean install -X 在项目 A 上我收到错误:
error: cannot find symbol
或
error: package com.example does not exist
如何混淆这个 jar?
编辑 1
在项目 A 的 POM 中,我有:
-
我的战争依赖:
<dependency> <groupId>com.example</groupId> <artifactId>myWarProject</artifactId> <version>1.0.0-BUILD-SNAPSHOT</version> </dependency> -
在构建部分:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <finalName>DeviceListener</finalName> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <manifestEntries> <Main-Class>com.example.main.Main</Main-Class> <Build-Number>1</Build-Number> </manifestEntries> </transformer> </transformers> </configuration> </execution> </executions> </plugin>
在项目 B 中,我有:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<attachClasses>true</attachClasses>
</configuration>
</plugin>
【问题讨论】:
-
您是否从您的战争项目中生成了一个类 jar?
-
@khmarbaise 你的意思是像这个链接吗? stackoverflow.com/questions/10862980/maven-generate-jar-and-war
-
战争依赖必须包含一个分类器,默认为
classes... -
@khmarbaise 我不明白。我应该如何使用它?
-
我错过了您需要在 maven-war-plugin 配置中添加
<archiveClasses>true</archiveClasses>的内容...另请参阅我对答案的编辑...
标签: java spring maven proguard obfuscation