2015-06-19 27 views
0

我有一種情況,我需要解壓縮一個彈簧罐,並用我的.class文件替換該軟件包中的一個文件,並將其重新打包爲jar。我明白這可以在Maven中完成。所以我創建了一個Maven項目,並且將.java(將在Spring jar中替換)添加到它。這是我的項目結構。如何unjar,編輯源代碼並使用maven將它重新加載回來?

enter image description here

這裏是我的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包的子目錄內

+0

最好的辦法是創建一個通用的java項目,其中可以編譯JdkVersion文件並使用maven-shade-插件來過濾/替換/添加生成的.class文件到決賽陰影罐... – khmarbaise

回答

0

您不必。 Spring是一個開源項目,它只是克隆其源代碼https://github.com/spring-projects/spring-framework?files=1並更新代碼並使用簡單的mvn包命令創建一個包

+0

感謝您的迴應。我沒有看到我們在GitHub倉庫中使用2.5.6的版本。 – pushya

+0

結帳這個https://github.com/cbeams-archive/spring-framework-2.5.x –

+0

Sarfaraz,它仍然不具備,我們正在使用的是春天2.5.6.SECO3版本。但我保持打開此選項。首先,我想弄清楚使用Maven bcoz,這是我的團隊首先要嘗試的東西 – pushya

相關問題