这似乎是一个微不足道的问题,但我已经用Google搜索了大约1个小时而没有找到直接解决它的答案,所以这里有:
堆栈:
开发环境 IntelliJ IDEA(个人) - 我们的一些开发人员更喜欢Eclipse
我有一个Java / Spring项目,我们部署到多个环境,我正在尝试创建一个构建过程供我们开发人员使用,这将允许我们从我们的工作站创建一个可部署的WAR文件。例如,我希望能够构建一个WAR,然后我可以通过ANT或手动部署到Servlet容器中:
我希望能够做的是,无论是从命令行还是通过IntelliJ,指定我要为哪个环境打包WAR文件,然后运行它。然后拿下WAR并做我需要做的事情。
同样,我知道这听起来微不足道,而且我缺少一些关于ANT的元素,但是你能提供的任何帮助都非常感激。
答案 0 :(得分:0)
这是一个带有2个目标的骨架蚂蚁构建。初始化简单的回声到控制台你的类路径(用于调试)。 “make-war”任务构建了实际的战争档案。您需要更改位置以匹配您的设置。
<project name="Sample Build Script" default="init" basedir=".">
<property environment="env" />
<!-- ***** COMMAND LINE ARGUMENTS DEMOED HERE -->
<property name="build_type" value= "${env.build_type}"/>
<property name="version" value="${env.version}"/>
<!-- ***** END OF COMMAND LINE ARG **** -->
<property name="src.dir" value="${basedir}/source"/>
<property name="build.classes.dir" value="${basedir}/classes"/>
<property name="project.name" value="myproject"/>
<target name="make-war" depends="compile-servlet">
<delete file="${build.classes.dir}/war/${project.name}.war"/>
<war destfile="${build.classes.dir}/war/${project.name}.war" webxml="${src.dir}/WEB-INF/web.xml">
<webinf dir="${src.dir}/WEB-INF" />
<fileset dir="${src.dir}/html">
<include name="*.html" />
</fileset>
<classes dir="${build.classes.dir}">
<include name="/my/package/*.*"/>
</classes>
<lib dir="/some/lib/loc">
<include name="some-lib.jar"/>
</lib>
</war>
</target>
<target name="init" >
<echo message="Using Source directory=${src.dir}" />
<echo message="Using Build-Classes directory=${build.classes.dir}" />
<!-- **** VERIFY COMMAND LINE ARGS HERE ***** -->
<echo message="Build Type=${build_type}" />
<echo message="Build Version =${version}" />
<!-- *** END VERIFY COMMAND LINE ARGUMENTS -->
</target>
</project>
我假设你已经编译了你的课程。您只想生成战争档案。我包含了html和lib元素作为参考。你可以随时评论它们。 希望有所帮助:)
更新: 我加入了COMMAND LINE VARIABLES。您将上述内容保存在名为build.xml的文件中。使用以下命令行运行该文件:
$> ant -Denv.build_type=PROD -Denv.version=2.01
将您的构建类型设置为“PROD”,将版本设置为“2.01”。这演示了如何在ANT BUILD FILE中使用命令行参数(根据您的详细说明)。
对于某人合并,命令行处理和“战争”目标,他们需要访问您的特定构建文件,构建要求,环境等。虽然术语“生产”是常见的。 “生产”的含义因项目而异。因此,所有人都能做的就是向您展示如何创建接受参数的ANT脚本。
希望有所帮助。