在没有Maven的情况下构建Maven项目

时间:2012-06-18 14:07:31

标签: maven java building

我有Maven项目,但在其中一台服务器上我必须在没有Maven的情况下构建它 可以使用标准JDK命令。我在哪里可以看到Maven在构建项目时发送给JDK的命令?

3 个答案:

答案 0 :(得分:6)

Maven做了很多。如果没有Maven,没有简单的方法可以模拟Maven的作用。

如果您绝对无法在服务器上安装maven,请在另一台服务器(或本地)上构建工件,并通过scp将它们移动到服务器上。

那就是说:我曾经有类似的情况,我从Maven为一台服务器生成一个RPM,该服务器绝对需要运行本地构建但无法运行Maven(禁止网络访问)。我所做的是将所有依赖项放在RPM中,加上Ant发布和Ant构建文件。在RPM安装脚本中,解压缩依赖项并调用Ant脚本。它有效,但这意味着双重工作。

答案 1 :(得分:1)

这是我的解决方案。当然它是硬编码,项目非常小,但对我来说它很有帮助

项目结构:
主文件夹
- 依赖(dir)
- module1 - src ...
- module2 - src ...
- manufest.template(file)
module2具有module1的依赖关系,module1由JDK1.5编译,module2与JDK1.6编译。

@echo off

set JODA=dependency\joda-time-1.6.2.jar
set EJB=dependency\ejb-api-3.0.jar
set PERSISTANCE_API=dependency\persistence-api-1.0.jar
set DEPENDENCIES=%EJB%;%JODA%;%PERSISTANCE_API%
set TEMP_FILE=temp
set PUBLIC_INTERFACE_CLASSES=target\target-module1
set CODEGEN_CLASSES=target\target-module2
mkdir target
mkdir %MODULE1_CLASSES%
mkdir %MODULE2_CLASSES%

dir module1\*.java /s /B > %TEMP_FILE%
%JAVA_HOME_1_5%\bin\javac -classpath %DEPENDENCIES%;%MODULE1_CLASSES% -d %MODULE1_CLASSES% @%TEMP_FILE%

dir module2\*.java /s /B > %TEMP_FILE%
%JAVA_HOME_1_6%\bin\javac -classpath %DEPENDENCIES%;%JAVA_HOME_1_6%\lib\tools.jar;%MODULE1_CLASSES%;%MODULE2_CLASSES% -d %MODULE2_CLASSES% @%TEMP_FILE%

jar cf module1.jar -C %MODULE1_CLASSES% .
jar cfm module2.jar manifest.template -C %MODULE2_CLASSES% .

rm %TEMP_FILE%
rm -r target

答案 2 :(得分:0)

您可以从此处下载相关性:http://jar-download.com/online-maven-download-tool.php。因此,您不需要Maven安装。