2

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

4

3 回答 3

6

Maven 做了很多。没有简单的方法可以模拟没有 Maven 的 Maven 所做的事情。

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

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

于 2012-06-18T14:12:07.900 回答
2

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

于 2015-12-28T13:45:32.373 回答
1

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

项目结构:
主文件夹
-依赖(dir)
-module1-src...-
module2-src...-
manufest.template(文件)
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
于 2012-06-19T07:24:10.553 回答