有没有办法在构建时自动替换.java文件中的模式?
我希望能够在构建时替换.java文件中的特定模式。事实上,我只想替换某些字符串值来表示构建时间。(我还想保持原始源文件不变)。有没有一种简单的方法(除了手动方法)?有没有办法在构建时自动替换.java文件中的模式?,java,netbeans,build,replace,Java,Netbeans,Build,Replace,我希望能够在构建时替换.java文件中的特定模式。事实上,我只想替换某些字符串值来表示构建时间。(我还想保持原始源文件不变)。有没有一种简单的方法(除了手动方法)? 我正在使用NetBeans作为我的IDE。我认为Ant或Maven可能会对您有所帮助-您是否使用这两种工具来执行构建?我没有使用Maven,但在Java中也做过类似的事情。最好不要将此模式放在Java文件中,而是从资源f.g..properties文件中加载它 Maven具有资源过滤功能,您可以使用配置文件更改特定资源,或从其他位置
我正在使用NetBeans作为我的IDE。我认为Ant或Maven可能会对您有所帮助-您是否使用这两种工具来执行构建?我没有使用Maven,但在Java中也做过类似的事情。最好不要将此模式放在Java文件中,而是从资源f.g..properties文件中加载它
Maven具有资源过滤功能,您可以使用配置文件更改特定资源,或从其他位置复制资源。Ant还为您提供了使用各种资源位置的机会。
您始终可以手动复制另一个属性文件。在所有情况下,源java文件都是完整的。代码从IDE运行,您可以更改模式,而不必重新编译代码。尝试使用Ant“替换”任务,下面是一个示例:
<replace file="${src}/index.html" token="@@@" value="wombat"/>
将文件${src}/index.html中出现的字符串“@@@1”替换为字符串“wombat”。我不确定是否要编辑Java代码。但如果你使用maven,有办法解决这个问题。创建一个属性文件,创建一个为您读取属性文件的util类。在希望在生成时替换属性的其他类中使用该类 基本上 创建一个具有
myprop1=${val1}
myprop2=${val2}
编写一个具有概要文件的maven pom.xml并执行此操作
<profiles>
<profile>
<id>local</id>
<properties>
<val1>localval1</val1>
<val2>localval2</val2>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<val1>prodval1</val1>
<val2>prodval2</val2>
</properties>
</profile>
</profiles>
地方的
localval1
localval2
戳
prodval1
prodval2
创建一个读取此config.properties的类。并使用它读取动态数据
使用mvn-Plocal clean install或mvn-Pprod clean install生成的值将根据配置文件在config.properties中被替换
希望这有帮助
使用ANT,您也可以这样做。在ANT中,可以创建多个配置文件,例如local.config.properties和prod.config.properties。在构建时,您可以传递诸如“local”或“prod”之类的参数
通过在config.properties前面加上参数(从而复制local.config、properties或prod.config、properties),在复制相应文件的位置执行资源复制。在复制到classpath之后,重命名为config.properties,我们的产品需要类似的东西(在编译的应用程序中嵌入构建时、构建计算机和用户名) 我们使用ant的
manifest
任务将一个清单嵌入到jar中,其中包含我们需要的信息。看
可以使用工具轻松地从JAR读取清单。如果您需要软件中的信息,可以通过编程方式读取,或者将其放入.properties文件(生成时生成)中,您可以从程序中读取这些信息。我相信NetBeans使用Ant构建java项目。但我如何使用Ant进行替换呢?我认为lechlukasz在下面给出了很好的建议-将项目外部化到属性文件中,然后自动(Maven/Ant)或手动更新此文件-如果只在一个地方指定,这将更容易。f.g.代表什么?