我们有一个名为web-app1的项目,并依赖于另一个名为core-app.jar的jar文件,该文件由另一个团队作为共享库提供,但此核心应用程序中有一个hibernate.cfg.xml .jar(在jar内),内容如下。
<hibernate-configuration>
<session-factory>
<property name="dialect">${hibernate.dialect}</property>
<property name="query.substitutions"><![CDATA[false 'N', true 'Y']]></property>
<property name="show_sql">false</property>
<property name="format_sql">false</property>
<property name="use_sql_comments">false</property>
<property name="generate_statistics">true</property>
<property name="hibernate.connection.release_mode">after_transaction</property>
<!-- Search Configurations -->
<property name="hibernate.search.default.directory_provider">org.hibernate.search.store.FSDirectoryProvider</property>
<property name="hibernate.search.default.indexBase">${lucene.index.home}</property>
<property name="hibernate.search.default.batch.merge_factor">10</property>
<property name="hibernate.search.default.batch.max_buffered_docs">10</property>
</session-factory>
</hibernate-configuration>
正如我们在“搜索配置”部分中看到的那样,有一个变量$ {lucene.index.home}应该被不同操作系统平台上的其他项目替换, 所以问题是,maven是否提供了一种过滤依赖jar文件并过滤内容的方法?任何插件?战争:战争,解压缩?依赖?我无法想出一个快速的方法来做到这一点。它看起来对我来说,无论采用什么插件,插件基本上都需要做4件事。
谢谢
答案 0 :(得分:1)
我认为这些值是在运行时设置的,可能是VM参数。提供一个必须修改才能使用的jar文件是没有意义的。
答案 1 :(得分:0)
如果你真的真的必须在构建时进行过滤以进行配置,那么应该过滤那些配置文件,而不是依赖项。然后,您应该将所述文件捆绑到多个工件中(当然假设您的目标是多个环境),或者在构建的工件之外作为外部化资源提供。