有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

没有Maven的java构建Maven项目

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


共 (3) 个答案

  1. # 1 楼答案

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

    项目结构:
    主文件夹
    -依赖项(dir)
    -模块1-src
    -模块2-src
    -曼努费斯特。模板(文件)
    module2与module1有依赖关系,module1是用JDK1编译的。5,带有JDK1的模块2。六,

    @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. # 3 楼答案

    Maven做了很多事。没有Maven,很难模拟Maven做什么

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

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