私は自分のプロジェクトの bom (http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html) を作成中です。私のプロジェクトには多くの依存関係があります... そこで、xml を生成する小さな ruby スクリプトを作成しました。しかし、artifactId を決定する正規表現に関しては不十分です。次の 3 つのパスがあるとします。
- /Users/buddy/Downloads/jboss-esb/client/hibernate-commons-annotations.jar
- /Users/buddy/Downloads/jboss-esb/client/ejb3-persistence.jar
- /Users/buddy/Downloads/jboss-esb/server/default/deploy/spring.esb/spring-core-3.0.6.RELEASE.jar
そして、私は私だけを返す正規表現を見つけようとしています
- 休止状態-コモンズ-注釈
- ejb3-永続性
- スプリングコア
前述のパスは変数ファイル名にあり、バージョンとartifactIdを決定するためにこの正規表現があります(明らかに、ファイル名にバージョンがない場合に備えて、いくつかのデフォルトバージョンがあります)
@version = version
if temp_version = filename[/-([\d+{1,3}\.A-Z]+).jar/,1]
@version = temp_version
end
@artifactId = filename[/.*\/([\w\d]+\-?[^\d^\-]*)\-?[\d+\.A-Z]*.jar/,1]
ただし、すべての場合に機能するとは限りません。
すべての場合で正規表現を機能させるための助けと、正規表現の簡略化されたバージョンが高く評価されています。