在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java/ java多模塊項目配置文件如何集中管理?

java多模塊項目配置文件如何集中管理?

公司有個大數(shù)據(jù)項目,maven分了多個模塊開發(fā),其中有寫模塊可能會依賴子模塊。每個模塊都擁有單獨的配置文件,打包的時候這些模塊都變成了jar包,要修改配置文件,只能重新打包很不方便。有什么思路能夠把這些配置文件進行統(tǒng)一管理么?
比方說hbase,項目外層建了個conf目錄,所有配置文件放在conf目錄下。但是不知道怎么與spring相結(jié)合。

回答
編輯回答
悶油瓶

思路1: 把配置文件放到外層

這個你已經(jīng)說了。但是以下缺點

  1. 配置文件遠離使用它的模塊,要找的時候不太好找。

  2. 如果新增了一個模塊,開發(fā)人員又忘記在外層conf里補充相關(guān)文件,項目就會啟動不起來了。

思路2:利用maven在打包時將配置文件合并

配置還是在模塊的源代碼里,但是這里的配置文件只是一個模板,沒有具體值,項目啟動的時候會讀取此路徑里的配置文件。

然后在aggregator項目(比如war包)的pom.xml里做一些配置,讓maven在打包時將各個jar包里的配置文件合并起來,形成一個完整的配置文件。

你可以對這個完整的配置文件形成幾個版本:開發(fā)、生產(chǎn)、測試,放到vcs里管理起來。

比如下面的代碼:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-dependency-plugin</artifactId>
  <version>2.10</version>
  <configuration>
    <artifactItems>
      <artifactItem>
        <groupId>...</groupId>
        <artifactId>...</artifactId>
        <version>...</version>
        <type>jar</type>
        <overWrite>true</overWrite>
        <outputDirectory>target/assembly-tmp</outputDirectory>
        <includes>application-xxx.properties</includes>
      </artifactItem>
      ...
    </artifactItems>
  </configuration>
  <executions>
    <execution>
      <phase>package</phase>
      <goals>
        <goal>unpack</goal>
      </goals>
    </execution>
  </executions>
</plugin>

<plugin>
  <artifactId>maven-antrun-plugin</artifactId>
  <version>1.8</version>
  <configuration>
    <target>
      <concat destfile="${project.build.directory}/assembly-tmp/application.properties" force="yes">
        <fileset dir="${project.build.directory}">
          <include name="assembly-tmp/application-*.properties"></include>
        </fileset>
      </concat>
    </target>
  </configuration>
  <executions>
    <execution>
      <phase>package</phase>
      <goals>
        <goal>run</goal>
      </goals>
    </execution>
  </executions>
</plugin>

<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <version>2.6</version>
  <configuration>
    <descriptor>settings.xml</descriptor>
  </configuration>
  <executions>
    <execution>
      <phase>package</phase>
      <goals>
        <goal>single</goal>
      </goals>
    </execution>
  </executions>
</plugin>
2017年10月16日 05:50
編輯回答
陌如玉
2018年9月8日 05:14