CAS (13) —— CAS 使用Maven Profile支持多環境編譯

CAS (13) —— CAS 使用Maven Profile支持多環境編譯

摘要

CAS 使用Maven Profile支持多環境編譯html


版本

tomcat版本: tomcat-8.0.29git

jdk版本: jdk1.8.0_65github

cas版本: 4.1.3web

cas4.1.3 (4.x還在開發過程當中不是很穩定,迭代比較快,也會有些bug) spring

cas-client-3.4.1apache

maven版本: 3.3.9tomcat

主要內容

準備

以項目github上CAS項目爲例進行擴充app

  • 參考文章

CAS (1) —— Mac下配置CAS到Tomcat(服務端)eclipse

配置

擴充不一樣環境下須要定製配置文件目錄

Profile使用

<profiles>
      <profile>
          <id>local8433</id>
          <properties>
              <env>local8433</env>
          </properties>
          <activation>
              <activeByDefault>true</activeByDefault>
          </activation>
          <build>
              <resources>
                  <resource>
                      <directory>src/main/resources</directory>
                      <excludes>
                          <exclude>*.bak</exclude>
                      </excludes>
                  </resource>
                  <resource>
                      <directory>src/main/resources-config/local8433</directory>
                  </resource>
              </resources>
          </build>
      </profile>
      <profile>
          <id>local8443</id>
          <properties>
              <env>local8443</env>
          </properties>
          <activation>
              <activeByDefault>true</activeByDefault>
          </activation>
          <build>
              <resources>
                  <resource>
                      <directory>src/main/resources</directory>
                      <excludes>
                          <exclude>*.bak</exclude>
                      </excludes>
                  </resource>
                  <resource>
                      <directory>src/main/resources-config/local8443</directory>
                  </resource>
              </resources>
          </build>
      </profile>

      <profile>
          <id>local</id>
          <properties>
              <env>local</env>
          </properties>
          <activation>
              <activeByDefault>true</activeByDefault>
          </activation>
          <build>
              <resources>
                  <resource>
                      <directory>src/main/resources</directory>
                      <excludes>
                          <exclude>*.bak</exclude>
                      </excludes>
                  </resource>
                  <resource>
                      <directory>src/main/resources-config/local</directory>
                  </resource>
              </resources>
          </build>
      </profile>
    <profile>
      <id>dev</id>
      <properties>
        <env>dev</env>
      </properties>
      <build>
        <resources>
          <resource>
            <directory>src/main/resources</directory>
            <excludes>
              <exclude>*.bak</exclude>
            </excludes>
          </resource>
          <resource>
            <directory>src/main/resources-config/dev</directory>
          </resource>
        </resources>
      </build>
    </profile>
    <profile>
      <id>qa</id>
      <properties>
        <env>qa</env>
      </properties>
      <build>
        <resources>
          <resource>
            <directory>src/main/resources</directory>
            <excludes>
              <exclude>*.bak</exclude>
            </excludes>
          </resource>
          <resource>
            <directory>src/main/resources-config/qa</directory>
          </resource>
        </resources>
      </build>
    </profile>
    <profile>
      <id>prod</id>
      <properties>
        <env>prod</env>
      </properties>
      <build>
        <resources>
          <resource>
            <directory>src/main/resources</directory>
            <excludes>
              <exclude>*.bak</exclude>
            </excludes>
          </resource>
          <resource>
            <directory>src/main/resources-config/prod</directory>
          </resource>
        </resources>
      </build>
    </profile>
      <profile>
          <id>prod215</id>
          <properties>
              <env>prod215</env>
          </properties>
          <build>
              <resources>
                  <resource>
                      <directory>src/main/resources</directory>
                      <excludes>
                          <exclude>*.bak</exclude>
                      </excludes>
                  </resource>
                  <resource>
                      <directory>src/main/resources-config/prod215</directory>
                  </resource>
              </resources>
          </build>
      </profile>
      <profile>
          <id>prod216</id>
          <properties>
              <env>prod216</env>
          </properties>
          <build>
              <resources>
                  <resource>
                      <directory>src/main/resources</directory>
                      <excludes>
                          <exclude>*.bak</exclude>
                      </excludes>
                  </resource>
                  <resource>
                      <directory>src/main/resources-config/prod216</directory>
                  </resource>
              </resources>
          </build>
      </profile>
  </profiles>

Filter使用

<build>
    <filters>
        <filter>${basedir}/src/main/webapp-config/${env}/filters/cas.properties</filter>
        <!--<filter>${basedir}/src/main/webapp-config/${env}/filters/spring-configuration/ticketRegistryDataSource.xml</filter>-->
        <!--<filter>${basedir}/src/main/webapp-config/${env}/filters/spring-configuration/authenticationDataSource.xml</filter>-->
        <filter>${basedir}/src/main/webapp-config/${env}/filters/spring-configuration/authenticationEncoder.xml</filter>
    </filters>

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
          <warName>cas</warName>
          <webResources>
            <resource>
              <directory>${basedir}/src/main/webapp/WEB-INF</directory>
              <filtering>true</filtering>
              <targetPath>WEB-INF</targetPath>
              <includes>
                <include>**/web.xml</include>
              </includes>
              <excludes>
                <exclude>**.bak</exclude>
              </excludes>
            </resource>
              <resource>
                  <directory>${basedir}/src/main/webapp-config/${env}/filters</directory>
                  <filtering>true</filtering>
                  <targetPath>WEB-INF</targetPath>
                  <includes>
                      <include>*.properties</include>
                      <include>**.xml</include>
                  </includes>
              </resource>
              <resource>
                  <directory>${basedir}/src/main/webapp-config/${env}/filters/spring-configuration</directory>
                  <filtering>true</filtering>
                  <targetPath>WEB-INF/spring-configuration</targetPath>
                  <includes>
                      <include>*.properties</include>
                      <include>**.xml</include>
                  </includes>
              </resource>
          </webResources>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <version>${maven-jetty-plugin.version}</version>
        <configuration>
          <webApp>
            <contextPath>/cas</contextPath>
          </webApp>
        </configuration>
      </plugin>
  </build>

參考

Introduction to Build Profileswebapp

CAS (7) —— Mac下配置CAS 4.x集羣及JPATicketRegistry

結束

相關文章
相關標籤/搜索