我想使用ProGuard(项目A)混淆项目(jar)。但是,这个项目依赖于另一场战争(项目B),并使用我在B中开发的一些类。
我使用了这个问题的解决方案:Build a jar from a maven project dependent on other project
但它没有用,当我使用命令
项目A上的dt1[.(urn = urn, end = date, start = date %m-% months(12)),
on = .(urn, date <= end, date >= start),
sum(amount), by = .EACHI]
我收到错误:
maven clean install -X
或
error: cannot find symbol
我怎样才能混淆这个罐子?
修改1
在项目A的POM中我有:
我的战争依赖:
error: package com.example does not exist
:
<dependency>
<groupId>com.example</groupId>
<artifactId>myWarProject</artifactId>
<version>1.0.0-BUILD-SNAPSHOT</version>
</dependency>
在项目B中,我有:
<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>
答案 0 :(得分:0)
我的意思是创建一个类似于war项目的类的jar:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<attachClasses>true</attachClasses>
<archiveClasses>true</archiveClasses>
</configuration>
</plugin>
</plugins>
</build>
这会生成一个补充jar文件,其中包含war项目的类,可以用作依赖项(不要忘记定义分类器)。
你需要改变你的依赖关系:
<dependency>
<groupId>com.example</groupId>
<artifactId>myWarProject</artifactId>
<version>1.0.0-BUILD-SNAPSHOT</version>
<classifier>classes</classifier>
</dependency>