你是想要引入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