Java 使用pom生成时更改应用程序上下文文件
我有一个spring批处理作业的application-context.xml文件,它使用属性占位符从database.properties读取值 我正在使用pom文件构建tar.gz文件 我在unix机器上构建并解压缩它。然后在检查应用程序上下文文件后,它的占位符值被更改为maven url 接下来的事情正在发生 建造前:Java 使用pom生成时更改应用程序上下文文件,java,spring,maven,Java,Spring,Maven,我有一个spring批处理作业的application-context.xml文件,它使用属性占位符从database.properties读取值 我正在使用pom文件构建tar.gz文件 我在unix机器上构建并解压缩它。然后在检查应用程序上下文文件后,它的占位符值被更改为maven url 接下来的事情正在发生 建造前: <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataS
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${driverClassName}" />
<property name="url"
value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" /></bean>
在执行maven安装后,可通过以下方式更改:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${driverClassName}" />
<property name="url"
value="http://maven.apache.org" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</bean>
pom文件中声明了一个“url”变量,该变量的url值将被替换。pom中的变量是否会更改其在应用程序上下文文件中的值?为什么pom将读取/编辑应用程序上下文文件
有人能面对同样的问题吗?感谢您的帮助。这称为资源筛选。它由maven资源插件完成,可以在POM中关闭
有关详细信息,请参阅。您正在使用maven筛选文件 过滤时,maven将替换文件中的占位符,就像在POM中一样。如果要动态分配值,这非常有用 在您的情况下,maven使用的占位符与Spring使用的占位符相同,因此您有几个选项: 1) 将占位符转义为 这将解决您的问题,但如果您依赖于其他地方的筛选,则需要更改这些文件
3) 禁用筛选为。这可能是最简单的解决方案,但也可能会破坏一切。可能的是,URL已通过过滤“maven资源插件”进行更改:
其他一些插件也支持过滤,请检查pom.xml。我怀疑您在pom中声明${}或{}表示在复制过程中需要由Maven替换的令牌。你最好展示一下pom,谢谢。我检查了我的pom文件,它包括另一个包含此筛选语句的descriptor.xml文件。但我并没有改变任何其他内容,而是在pom.xml中对url标记进行了注释。这是非常有用的,因为我是pom的新手。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<configuration>
...
<escapeString>\</escapeString>
...
</configuration>
</plugin>
</plugins>
...
</build>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<configuration>
...
<delimiters>
<delimiters>@</delimiters>
</delimiters>
...
</configuration>
</plugin>
</plugins>
...
</build>