maven scala plugin 使用教程筆記之jvmArgs配置-D參數中使用.md

maven scala plugin 使用教程筆記之jvmArgs配置,自定義properties 在jvmArgs -D參數中使用

jvmArgs是什麼

舉個例子:java

$JAVA_ARGS.=「-Dresin.home=$SERVER_ROOT-server
    
    -Xms2048M-Xmx2048M-Xmn512M-XX:PermSize=256M
    
    -XX:MaxPermSize=256M-XX:+UseConcMarkSweepGC
    
    -XX:MaxTenuringThreshold=7-XX:GCTimeRatio=19
    
    -Xnoclassgc-Xloggc:log/gc.log-XX:+PrintGCDetails
    
    -XX:+PrintGCTimeStamps-XX:+UseCMSCompactAtFullCollection
    
    -XX:CMSFullGCsBeforeCompaction=0」

這是JVM參數調優時候的一些配置spring

java的System.getProperty

java的System.getProperty()方法默承認以獲取的值:apache

| Key | Value|架構

| Java.version | Java 運行時環境版本|jvm

| java.vendor | Java 運行時環境供應商 |maven

|java.vendor.url|Java 供應商的 URL|spring-boot

|java.home|Java 安裝目錄|ui

|java.vm.specification.version|Java 虛擬機規範版本|url

|java.vm.specification.vendor|Java 虛擬機規範供應商|操作系統

|java.vm.specification.name|Java 虛擬機規範名稱|

|java.vm.version|Java 虛擬機實現版本|

|java.vm.vendor|Java 虛擬機實現供應商|

|java.vm.name|Java 虛擬機實現名稱|

|java.specification.version|Java 運行時環境規範版本|

|java.specification.vendor|Java 運行時環境規範供應商|

|java.specification.name|Java 運行時環境規範名稱|

|java.class.version|Java 類格式版本號|

|java.class.path|Java 類路徑|

|java.library.path|加載庫時搜索的路徑列表|

|java.io.tmpdir|默認的臨時文件路徑|

|java.compiler|要使用的 JIT 編譯器的名稱|

|java.ext.dirs|一個或多個擴展目錄的路徑|

|os.name|操做系統的名稱|

|os.arch|操做系統的架構|

|os.version|操做系統的版本|

|file.separator|文件分隔符(在 UNIX 系統中是「/」)|

|path.separator|路徑分隔符(在 UNIX 系統中是「:」)|

|line.separator|行分隔符(在 UNIX 系統中是「/n」)|

|user.name|用戶的帳戶名稱|

|user.home|用戶的主目錄|

|user.dir|用戶的當前工做目錄|

自定義properties 在jvmArgs -D參數中使用

public class AutoKeyConfig {
   
    public static final String AUTOKEY_PORT = "sword.autokey.port";

    public static final int PORT_DEFAULT = 8204;
}

實現代碼:

String portStr = SwordConfigLoader.getProperty(AutoKeyConfig.AUTOKEY_PORT);
int port = portStr != null ? Integer.parseInt(portStr) : AutoKeyConfig.PORT_DEFAULT;

maven build 生命週期配置jvmArgs

<build>
    <sourceDirectory>src/main/scala</sourceDirectory>
    <plugins>
        <plugin>
            <groupId>org.scala-tools</groupId>
            <artifactId>maven-scala-plugin</artifactId>
            <configuration>
                <launchers>
                    <launcher>
                        <id>pdata</id>
                        <mainClass>com.pdata.PDataApplication</mainClass>
                        <!-- args are optional -->
                        <!--<args>-->
                        <!--<arg>arg1</arg>-->
                        <!--</args>-->
                        <!-- jvmArgs are optional -->
                        <jvmArgs>
                            <jvmArg>-Xmx1024m</jvmArg>
                            <jvmArg>-Dsword.autokey.port=9202</jvmArg>
                        </jvmArgs>
                    </launcher>
                    <!-- you could define other launcher -->
                </launchers>
            </configuration>
            <executions>
                <execution>
                    <id>compile-and-test-compile</id>
                    <goals>
                        <goal>compile</goal>
                        <goal>testCompile</goal>
                        <goal>run</goal>
                    </goals>
                </execution>
                <execution>
                    <id>doc</id>
                    <phase>install</phase>
                    <goals>
                        <goal>doc</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <includeScope>system</includeScope>
                <!--<outputDirectory>${project.build.directory}/${project.build.finalName}/lib</outputDirectory>-->
            </configuration>
        </plugin>
    </plugins>
</build>

這樣,就能夠直接使用以下命令動態注入sword.autokey.prot的值, 啓動應用:

mvn scala:run -Dlauncher=pdata
相關文章
相關標籤/搜索