最近由於一個項目須要對JBOSS進行補丁升級(Tomcat容器),因爲JBOSS使用的是社區版,因此須要本身動手修改及編譯源碼,如下描述操做過程,有一樣需求的同窗能夠參考一下,若是過程當中有錯誤還請各位批評指正。apache
1,源代碼下載:tomcat
按照版本需求下載下應的源碼,下載後解壓相到相應磁盤;maven
2,構建,編譯源碼url
本文基於mvn進行源碼構建;進入Jboss-->tomcat目錄;spa
1)因爲本人下載的是較舊版本Jboss,首先修改mvn庫中的settings.xml文件;code
須要注意:xml
http://repository.jboss.org/maven2/
ipThis URL has been disabled (June 2011) in order to reduce the load on the JBoss repository and encourage users to migrate to the Nexus URLsci
因此setting中修改成:
<id>public</id>
<repositories>
<repository>
<id>jboss-public-repository-group</id>
<name>JBoss Public Repository Group</name>
<url>http://repository.jboss.org/nexus/content/groups/public/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</repository>
<repository>
<id>JBoss Deprecated</id>
<name>JBoss Deprecated</name>
<url>http://repository.jboss.org/nexus/content/repositories/deprecated</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>jboss-public-repository-group</id>
<name>JBoss Public Repository Group</name>
<url>http://repository.jboss.org/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
.............
<activeProfile>public</activeProfile>
官方地址:https://community.jboss.org/wiki/MavenSettings
2)tomcat中pom.xml增長,執行mvn install:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.0</version>
<configuration>
<rules>
<banDuplicateClasses>
<findAllDuplicates>true</findAllDuplicates>
</banDuplicateClasses>
</rules>
<fail>false</fail>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>extra-enforcer-rules</artifactId>
<version>1.0-alpha-1</version>
</dependency>
</dependencies>
</plugin>
這是因爲mvn install過程當中出現錯誤:
Execution enforce-plugin-versions of goal org.apache.maven.plugins:maven-enforcer-plugin :1.0-alpha-4:enforce failed. NullPointerException
3)導入eclipse,修改相應的源文件,執行mvn clean package
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
4)tomcat->taget目錄中出現jboss-as-tomcat-*.jar,則說明編譯打包成功;
以上操做就是編譯tomcat源碼的過程。