Java 如何使用maven取消归档、编辑源代码并将其恢复到jar中?
在这种情况下,我需要解包一个SpringJAR,用我的.class文件替换该包中的一个文件,并将其重新打包为jar。我知道这可以在Maven中完成。因此,我创建了一个maven项目,并在其中添加了.java(在SpringJAR中替换)。这是我的项目结构 这是我的Java 如何使用maven取消归档、编辑源代码并将其恢复到jar中?,java,maven,package,unpack,Java,Maven,Package,Unpack,在这种情况下,我需要解包一个SpringJAR,用我的.class文件替换该包中的一个文件,并将其重新打包为jar。我知道这可以在Maven中完成。因此,我创建了一个maven项目,并在其中添加了.java(在SpringJAR中替换)。这是我的项目结构 这是我的pom.xml <project> <modelVersion>4.0.0</modelVersion> <name>repackage</name>
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>
4.0.0
重新包装
org.springframework
春天
2.4.6
聚甲醛
org.apache.maven.plugins
maven依赖插件
2.10
打开
包裹
打开
org.springframework
春天
2.5.6.03
罐子
假的
目标
我能够使用
maven依赖插件
解包springjar,并且我知道如何使用maven jar插件
将它打包回jar。我正在努力理解1)如何将我的.java文件转换为.class文件。由于包装是pom类型的pom
我无法编译java文件(JdkVersion.java
)。如果成功创建了类文件2)如何将这个.class文件替换到未打包的spring jar中,因为我需要替换的文件位于/spring
包的子目录中,您不必这样做。Spring是一个开源项目,只需克隆其源代码并更新代码,然后使用简单的mvn package命令创建一个包即可感谢您的响应。我没有看到我们正在使用的spring版本,即GitHub repo中的2.5.6版本。Sarfaraz,它仍然没有我们正在使用的spring版本,即spring 2.5.6.SECO3。但我保留这个选择。首先,我想弄清楚使用Maven bcoz是我的团队想要尝试的first@pushya您是否能够编译java类?要替换类文件,可以使用以下命令jar uf jar file input file不,我无法编译java类打包为
类型。最好是创建一个普通的java项目,在其中可以编译JdkVersion文件,并使用maven shade插件过滤/替换/将生成的.class文件添加到最终着色的jar中。。。