你是想要引入maven的包?然後通過java代碼調用打包指令嗎?
你如果本地有配置maven的話,你可以嘗試使用java去調用cmd指令來執行maven指令。
另外你可以在eclipse里安裝M2E插件,下載一下 M2E的源代碼 通過 alt shift F1可以看到eclipse中一個view 是用哪個類的,alt shift f2 可以看一個菜單action的代碼是哪個類做的。這樣你就可以跟蹤代碼來看一下 在M2E插件中是如何執行的 maven打包了~~~。
2. Java Maven打包總結(Jenkins多模塊編譯部署)
原文地址: Java Maven打包總結(Jenkins多模塊編譯部署)
依次執行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7個階段。
完成了項目編譯、單元測試、打包功能,但沒有把打好的可執行jar包(war包或其它形式的包)布署到本地maven倉庫和遠程maven私服倉庫
依次執行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8個階段。
完成了項目編譯、單元測試、打包功能,同時把打好的可執行jar包(war包或其它形式的包)布署到本地maven倉庫,但沒有布署到遠程maven私服倉庫
依次執行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9個階段。完成了項目編譯、單元測試、打包功能,同時把打好的可執行jar包(war包或其它形式的包)布署到本地maven倉庫和遠程maven私服倉庫
可以看到主要區別在把生成的jar包最終存放的位置, package只管打包; install把打好的包放到了本地maven倉庫;deploy是同時放到本地倉庫和遠程maven私服
這里本地倉庫默認是 /root/.m2/repository/ ,具體配置在 ${M2_HOME}/conf/settings 的 localRepository 配置項決定。遠程私服倉庫一般是nexus,具體地址在項目的pom.xml中配置。比如
一般是進入父級目錄之後執行
如果是多級目錄的話,有時候並不一定是按照 具體的項目來 編譯,比如
這個時候如果一個項目一個項目來編譯會超級多,很繁瑣,這里是按照 subparentproject 來編譯,命令如下
有個注意的地方:
subparentproject 目錄下的pom.xml文件中一定有類型如下的配置
1、需要安裝插件 Extended Choice Parameter Plug-In 可以支持參數單選、多選
2、項目選擇"自由風格",而不是maven編譯
3、在「構建」 -> "執行shell" 中編寫 子模塊編譯腳本及其後續處理
具體配置如下圖
「構建」 -> "執行shell" 中的處理腳本
附加:
Linux Bash下字元串操作總結
3. 怎麼創建maven 的java,並啟動
Maven使用 archetype 來創建項目。要創建一個簡單的 Java 應用程序,我們使用 maven-archetype-quickstart 插件。在下面的例子中,我們將創建一個基於Maven 的 Java 應用程序項目在 C:\MVN 文件夾。
讓我們打開命令控制台,進入到 C:\MVN 目錄並執行以下命令 mvn 命令。
C:MVN>mvn archetype:generate
-DgroupId=com.companyname.bank
-DartifactId=consumerBanking
-DarchetypeArtifactId=maven-archetype-quickstart
-DinteractiveMode=false
Maven會開始處理,並建立完整的 Java應用程序項目結構。
INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'archetype'.
[INFO] -------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO] task-segment: [archetype:generate] (aggregator-style)
[INFO] -------------------------------------------------------------------
[INFO] Preparing archetype:generate
[INFO] No goals needed for project - skipping
[INFO] [archetype:generate {execution: default-cli}]
[INFO] Generating project in Batch mode
[INFO] -------------------------------------------------------------------
[INFO] Using following parameters for creating project
from Old (1.x) Archetype: maven-archetype-quickstart:1.0
[INFO] -------------------------------------------------------------------
[INFO] Parameter: groupId, Value: com.companyname.bank
[INFO] Parameter: packageName, Value: com.companyname.bank
[INFO] Parameter: package, Value: com.companyname.bank
[INFO] Parameter: artifactId, Value: consumerBanking
[INFO] Parameter: basedir, Value: C:MVN
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] project created from Old (1.x) Archetype in dir: C:MVNconsumerBanking
[INFO] ------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------
[INFO] Total time: 14 seconds
[INFO] Finished at: Tue Jul 10 15:38:58 IST 2012
[INFO] Final Memory: 21M/124M
[INFO] ------------------------------------------------------------------
現在進入到 C:\MVN 目錄。將看到創建了一個 Java應用程序項目,並命名為 consumerBanking(如:artifactId 指定)。 Maven 使用的標准目錄結構,如下圖所示:
用上面的例子中,我們可以了解到以下關鍵概念
文件夾結構
描述
consumerBanking
包括 src 目錄和 pom.xml
src/main/java
包含封裝結構下的 Java 代碼的文件 (com/companyName/bank)
src/main/test
包含封裝結構下的文本Java 測試代碼文件 (com/companyName/bank)
src/main/resources
它包含圖片/屬性文件(在上面的例子中需要手動創建這個結構)
Maven 還創建了一個示例 Java 源文件和 Java 測試文件。打開 C:\MVN\consumerBanking\src\main\java\com\companyname\bank 文件夾,會看到 App.java 如下所示代碼:
package com.companyname.bank;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
}
}
打開 C:\MVN\consumerBanking\src\test\java\com\companyname\bank 文件夾,就會看到 AppTest.java
package com.companyname.bank;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
/**
* Unit test for simple App.
*/
public class AppTest extends TestCase
{
/**
* Create the test case
*
* @param testName name of the test case
*/
public AppTest( String testName )
{
super( testName );
}
/**
* @return the suite of tests being tested
*/
public static Test suite()
{
return new TestSuite( AppTest.class );
}
/**
* Rigourous Test :-)
*/
public void testApp()
{
assertTrue( true );
}
}
開發人員需要創建如上表所述文件,Maven將處理所有構建。
4. 如何用Java代碼執行maven編譯
我的思路:在windows環境下,用Java調用CMD進入待操作的項目目錄下,然後執行mvn compile。或者執行bat批處理文件,用bat執行maven命令。
5. 怎麼把java maven工程打包
第一步:在你的pom.xml中添加
1<plugin>
2 <artifactId>maven-assembly-plugin</artifactId>
3 <version>2.2</version>
4 <configuration>
5 <archive>
6 <manifest>
7 <mainClass>cn.com.threetcloud.agent.server.BrokerServer</mainClass>
8 </manifest>
9 </archive>
10 <descriptorRefs>
11 <descriptorRef>
12 jar-with-dependencies
13 </descriptorRef>
14 </descriptorRefs>
15 </configuration>
16 </plugin>
第二步:CMD進入到自己的工程文件夾下進行mvn assembly:assembly操作
我的工程是在D:\workspace\test
那麼操作步驟是
1:cmd回車
2:d:回車
3:cd workspace回車
4:cd test回車
5:mvn assembly:assembly回車
第三步:CMD通過java命令運行剛才導出的jar文件,一般導出後在自己工程的target文件夾下面
我的jar導出後在D:\workspace\test\target\agent-server-0.0.1-jar-with-dependencies.jar
那麼操作步驟是
1:cmd回車
2:d:回車
3:cd workspace回車
4:cd test回車
5:cd target回車
5:java -jar agent-server-0.0.1-jar-with-dependencies.jar回車
到此結束。
6. 如何創建一個java maven工程
1、用Maven模板創建一個項目
打開控制台,進入到想要創建項目的目錄,然後運行如下命令,參數自由填寫:
1 mvn archetype:generate -DgroupId={project-packaging}
2 -DartifactId={project-name}
3 -DarchetypeArtifactId=maven-archetype-quickstart
4 -DinteractiveMode=false
參數說明:
1.1、-DgroupId:包名,如:com.google
1.2、-DartifactId: 項目名稱,如:NumberGenerator
1.3、-DarchetypeArtifactId: 項目的類型,Maven提供了很多模板,如果你沒寫這個,創建的時候就會列出一大堆模板讓你選擇
1.4、-DinteractiveMode: 是否使用交互模式,如果是true,那麼在創建過程中就要手動輸入一些參數
一個實際例子:
1 mvn archetype:generate -DgroupId=com.mkyong -DartifactId=NumberGenerator
2 -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
在上面的例子中,Maven會創建一個名為"NumberGenerator"的項目,並把項目的目錄結構自動創建好,如果你的命令執行失敗了,那就手動創建吧。
7. java maven項目跟web項目區別
區別如下:
一,Web項目是網頁的編碼,像jsp,servlet,struts這類的。但是java maven項目的話,是AWT,SWING這類的編碼。
二,Web項目中是tomcat來觸發的,但是java maven項目里是Main來開始的。
三,Web項目需要伺服器,java maven項目則不需要。
Maven 除了以程序構建能力為特色之外,還提供高級項目管理工具。由於 Maven 的預設構建規則有較高的可重用性,所以常常用兩三行 Maven 構建腳本就可以構建簡單的項目。
由於 Maven 的面向項目的方法,許多 Apache Jakarta 項目發文時使用 Maven,而且公司項目採用 Maven 的比例在持續增長。
(7)mavenjava命令擴展閱讀:
Maven常用命令:
mvn archetype:generate 創建Maven項目
mvn compile 編譯源代碼
mvn deploy 發布項目
mvn test-compile 編譯測試源代碼
mvn test 運行應用程序中的單元測試
mvn site 生成項目相關信息的網站
mvn clean 清除項目目錄中的生成結果
mvn package 根據項目生成的jar
mvn install 在本地Repository中安裝jar
mvn eclipse:eclipse 生成eclipse項目文件
mvnjetty:run 啟動jetty服務
mvntomcat:run 啟動tomcat服務
參考資料:網路:Maven