我有一種情況,我需要解壓縮一個彈簧罐,並用我的.class文件替換該軟件包中的一個文件,並將其重新打包爲jar。我明白這可以在Maven中完成。所以我創建了一個Maven項目,並且將.java(將在Spring jar中替換)添加到它。這是我的項目結構。如何unjar,編輯源代碼並使用maven將它重新加載回來?
這裏是我的pom.xml
<project>
<modelVersion>4.0.0</modelVersion>
<name>repackage</name>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.4.6</version>
<packaging>pom</packaging>
<build>
<plugins>
<!-- Unpacking -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>unpack</id>
<phase>package</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.5.6.SEC03</version>
<type>jar</type>
<overWrite>false</overWrite>
<outputDirectory>target</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<!-- Packing -->
<!-- <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classesDirectory>target</classesDirectory>
<classifier>sample</classifier>
</configuration>
</execution>
</executions>
</plugin>-->
</plugins>
</build>
</project>
我能解壓使用maven dependency plugin
春天罐子,我想出如何收拾回用maven-jar-plugin
一個罐子。我正在努力理解的部分1)如何將我的.java文件轉換爲.class文件。由於包裝是pom類型<packaging>pom</packaging>
我無法編譯java文件(JdkVersion.java
)。如果成功創建類文件2)如何將此.class文件替換爲未壓縮的彈簧罐,因爲我需要替換的文件位於/spring
包的子目錄內
最好的辦法是創建一個通用的java項目,其中可以編譯JdkVersion文件並使用maven-shade-插件來過濾/替換/添加生成的.class文件到決賽陰影罐... – khmarbaise