IntelliJのファイルテンプレートでMavenプロパティをエスケープする方法

マーティンシーラー

JetBrains IntelliJ IDEA12でMavenプロジェクトのテンプレートを作成しようとしています。

私の目標は、テンプレート内の事前定義されたMavenプロパティをエスケープすることです。残念ながら、構文はテンプレート内のIntelliJのパラメーターと同じです。

オンラインヘルプによると、$シンボルを$前に別のシンボルでエスケープできるため、テンプレートは次のようになります(下部のプラグイン部分が重要です)。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    #if (${HAS_PARENT})
    <parent>
        <groupId>${PARENT_GROUP_ID}</groupId>
        <artifactId>${PARENT_ARTIFACT_ID}</artifactId>
        <version>${PARENT_VERSION}</version>
        #if (${HAS_RELATIVE_PATH})
        <relativePath>${PARENT_RELATIVE_PATH}</relativePath>
        #end
    </parent>
    #end

    <groupId>${GROUP_ID}</groupId>
    <artifactId>${ARTIFACT_ID}</artifactId>
    <version>${VERSION}</version>

    <!-- global properties -->
    <properties>
        <jdk.version>1.7</jdk.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <build>
        <plugins>
            <!-- set jdk version -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.0</version>
                <configuration>
                    <source>$${jdk.version}</source>
                    <target>$${jdk.version}</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

    ${END}
</project>

ただし、このテンプレートを使用すると、出力は次のようになります。

<build>
    <plugins>
        <!-- set jdk version -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.0</version>
            <configuration>
                <source>$JDK.VERSION$</source>
                <target>$JDK.VERSION$</target>
            </configuration>
        </plugin>
    </plugins>
</build>

だから私の質問は:${jdk.version}代わりにどうやって得ることができ$JDK.VERSION$ますか、そして文字列をエスケープする適切な方法は何ですか?

ステファンハイムベルク

IntelliJはテンプレートエンジンとしてApacheVelocityを使用するため、#setを使用して参照を作成できます。

http://velocity.apache.org/engine/releases/velocity-1.6.4/user-guide.html

使用できます

#set( $jdk_version = "${jdk.version}" )

テンプレート内では、$ {jdk_version}で参照するだけです。

次の例をテストできますか?

#set( $jdk_version = "${jdk.version}" )
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    #if (${HAS_PARENT})
    <parent>
        <groupId>${PARENT_GROUP_ID}</groupId>
        <artifactId>${PARENT_ARTIFACT_ID}</artifactId>
        <version>${PARENT_VERSION}</version>
        #if (${HAS_RELATIVE_PATH})
        <relativePath>${PARENT_RELATIVE_PATH}</relativePath>
        #end
    </parent>
    #end

    <groupId>${GROUP_ID}</groupId>
    <artifactId>${ARTIFACT_ID}</artifactId>
    <version>${VERSION}</version>

    <!-- global properties -->
    <properties>
        <jdk.version>1.7</jdk.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <build>
        <plugins>
            <!-- set jdk version -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.0</version>
                <configuration>
                    <source>${jdk_version}</source>
                    <target>${jdk_version}</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

    ${END}
</project>

それは次の出力を生成していました:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>3</groupId>
        <artifactId>4</artifactId>
        <version>5</version>
        <relativePath>7</relativePath>
    </parent>

    <groupId>8</groupId>
    <artifactId>9</artifactId>
    <version>10</version>

    <!-- global properties -->
    <properties>
        <jdk.version>1.7</jdk.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <build>
        <plugins>
            <!-- set jdk version -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.0</version>
                <configuration>
                    <source>${jdk.version}</source>
                    <target>${jdk.version}</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

    11
</project>

これがあなたの助けになり、あなたの質問の答えになることを願っています...

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

プロパティファイルのスプリングブートで「@」をエスケープする方法

分類Dev

プロパティファイルで等号をエスケープする方法

分類Dev

IntelliJ IDEAのアプリケーション実行プロファイルでクラスパスにディレクトリを追加する方法

分類Dev

プロパティファイルでコロン(:)をどのようにエスケープしますか?

分類Dev

SpringコンテキストでMavenプロファイルプロパティを挿入する方法

分類Dev

SpringコンテキストでMavenプロファイルプロパティを挿入する方法

分類Dev

Saltstack:任意の値でJinjaテンプレートからJavaプロパティファイルを作成する

分類Dev

WSO2プロパティのXPath式でアポストロフィをエスケープする方法

分類Dev

パッケージエクスプローラーでアクティブなファイルの長さを取得するEclipseプラグイン

分類Dev

jdbcテンプレートを使用してプロパティファイルを使用する方法

分類Dev

PowerShellを使用してcsvでファイルプロパティをエクスポートする方法

分類Dev

.ymlファイルでプロパティプレースホルダーを使用する方法

分類Dev

コンテキストの初期化:プロパティ-プレースホルダーはMavenプロファイルに依存します

分類Dev

春のプロパティファイル内のプレースホルダの値を設定する方法

分類Dev

Javaプロジェクトでクラスファイルのテンプレートを構成する方法

分類Dev

コードファーストタイプ ''のプロパティ ''のForeignKeyAttributeが無効です。エンティティフレームワーク

分類Dev

スプリングブートのプロファイルプロパティを上書きする

分類Dev

Sitecoreテンプレートフィールドでドロップリストタイプを使用する方法

分類Dev

rubyで欠落しているテンプレートプロファイルエラーを修正する方法

分類Dev

特定のアプリケーションのみのSQLプロファイラーでステップをトレースする方法

分類Dev

通常のアプリケーションコンテキストでプロパティファイルを読み込めないのはなぜですか?

分類Dev

アプリケーションプロパティファイルをAntビルドスクリプトに処理する方法は?

分類Dev

ファイルシステム上のファイルのプロパティプレースホルダーを使用する方法

分類Dev

ResourceBundle APIを使用してフェッチされたプロパティファイルで中括弧をエスケープする方法

分類Dev

ベンダーパッケージを除くプロジェクト内のすべてのテストファイルでgo testを実行する方法

分類Dev

サードパーティAPIのレスポンスであるファイルをアップロードする方法

分類Dev

Antがプロパティファイルをクラスディレクトリにコピーする方法

分類Dev

Mavenでは、プラグインがアクティブ化されていないアクティブ化プロファイル内で宣言されている場合、拡張パッケージングタイプは「不明なパッケージングエラー」をスローします

分類Dev

java:角括弧のプロパティファイルエスケープシーケンス

Related 関連記事

  1. 1

    プロパティファイルのスプリングブートで「@」をエスケープする方法

  2. 2

    プロパティファイルで等号をエスケープする方法

  3. 3

    IntelliJ IDEAのアプリケーション実行プロファイルでクラスパスにディレクトリを追加する方法

  4. 4

    プロパティファイルでコロン(:)をどのようにエスケープしますか?

  5. 5

    SpringコンテキストでMavenプロファイルプロパティを挿入する方法

  6. 6

    SpringコンテキストでMavenプロファイルプロパティを挿入する方法

  7. 7

    Saltstack:任意の値でJinjaテンプレートからJavaプロパティファイルを作成する

  8. 8

    WSO2プロパティのXPath式でアポストロフィをエスケープする方法

  9. 9

    パッケージエクスプローラーでアクティブなファイルの長さを取得するEclipseプラグイン

  10. 10

    jdbcテンプレートを使用してプロパティファイルを使用する方法

  11. 11

    PowerShellを使用してcsvでファイルプロパティをエクスポートする方法

  12. 12

    .ymlファイルでプロパティプレースホルダーを使用する方法

  13. 13

    コンテキストの初期化:プロパティ-プレースホルダーはMavenプロファイルに依存します

  14. 14

    春のプロパティファイル内のプレースホルダの値を設定する方法

  15. 15

    Javaプロジェクトでクラスファイルのテンプレートを構成する方法

  16. 16

    コードファーストタイプ ''のプロパティ ''のForeignKeyAttributeが無効です。エンティティフレームワーク

  17. 17

    スプリングブートのプロファイルプロパティを上書きする

  18. 18

    Sitecoreテンプレートフィールドでドロップリストタイプを使用する方法

  19. 19

    rubyで欠落しているテンプレートプロファイルエラーを修正する方法

  20. 20

    特定のアプリケーションのみのSQLプロファイラーでステップをトレースする方法

  21. 21

    通常のアプリケーションコンテキストでプロパティファイルを読み込めないのはなぜですか?

  22. 22

    アプリケーションプロパティファイルをAntビルドスクリプトに処理する方法は?

  23. 23

    ファイルシステム上のファイルのプロパティプレースホルダーを使用する方法

  24. 24

    ResourceBundle APIを使用してフェッチされたプロパティファイルで中括弧をエスケープする方法

  25. 25

    ベンダーパッケージを除くプロジェクト内のすべてのテストファイルでgo testを実行する方法

  26. 26

    サードパーティAPIのレスポンスであるファイルをアップロードする方法

  27. 27

    Antがプロパティファイルをクラスディレクトリにコピーする方法

  28. 28

    Mavenでは、プラグインがアクティブ化されていないアクティブ化プロファイル内で宣言されている場合、拡張パッケージングタイプは「不明なパッケージングエラー」をスローします

  29. 29

    java:角括弧のプロパティファイルエスケープシーケンス

ホットタグ

アーカイブ