gpt4 book ai didi

java - 在java中创建WAR时调用一个函数

转载 作者:行者123 更新时间:2023-11-30 11:09:51 26 4
gpt4 key购买 nike

我们想在创建 JAVA(Web Dynamic Project 3.0) 的 WAR 时在页面上显示时间,我们通过调用此函数在 Grails 中执行此操作

/**
* Gant script to update buildtimestamp
*/
eventCreateWarStart = { warName, stagingDir ->
def buildDate = new Date()

ant.propertyfile(file: "${stagingDir}/WEB-INF/classes/application.properties") {
entry(key:"build.date", value:buildDate)
}

}

现在我们想在 java 中实现同样的事情,当创建该项目的 WAR 时调用 WAR 事件如何做到这一点??

最佳答案

这取决于你用什么来建立 war 。

如果您直接使用 jar 命令,您可能应该创建一个脚本,将日期写入 application.properties 文件并启动 war 创建。

如果你使用 ant,你可以分两步完成:

  1. 像这样创建一个类:
package tests;

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;
import java.util.Properties;

public class GeneratePropertiesFile {
public static void main(String[] args) throws IOException {
Properties properties = new Properties();
properties.setProperty("build.date", new Date().toString());
properties.store(new FileOutputStream(stagingDir + "/WEB-INF/classes/application.properties"), "");
}
}
  1. 像这样编写一个 ant 构建文件:
<project name="sample" basedir="." default="buildWar">
<target name="buildProperties">
<java fork="true" failonerror="yes" classname="tests.GeneratePropertiesFile"/>
</target>
<target name="buildWar" depends="buildProperties">
<war destfile="myapp.war" webxml="src/metadata/myapp.xml">
<fileset dir="src/html/myapp"/>
<fileset dir="src/jsp/myapp"/>
<lib dir="thirdparty/libs">
<exclude name="jdbc1.jar"/>
</lib>
<classes dir="build/main"/>
</war>
</target>
</project>

关于java - 在java中创建WAR时调用一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27981892/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com