前々回、前回に Maven2 で Groovy コードを実行する方法を見ましたが、このコード中で、自分で定義する必要なく使用できる「定義済み変数」がいくつかあります。 今回はそれらと、それらのプロパティを見ていく、というか参考のために列挙しておきます(一覧)。
ちなみに、使い方はこんな感じ:
pom.xml
<?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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.sample</groupId> <artifactId>sample</artifactId> <version>1.0-SNAPSHOT</version> <build> <plugins> <plugin> <groupId>org.codehaus.gmaven</groupId> <artifactId>gmaven-plugin</artifactId> <version>1.2</version> <configuration> <source><![CDATA[ log.info(project.groupId) log.info(project.artifactId) log.info(project.version) ]]></source> </configuration> </plugin> </plugins> </build> </project>
実行コマンド
mvn groovy:execute
実行結果
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Unnamed - org.sample:sample:jar:1.0-SNAPSHOT
[INFO] task-segment: [groovy:execute]
[INFO] ------------------------------------------------------------------------
[INFO] [groovy:execute {execution: default-cli}]
[INFO] org.sample
[INFO] sample
[INFO] 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6 seconds
[INFO] Finished at: Tue Apr 13 12:47:56 JST 2010
[INFO] Final Memory: 12M/29M
[INFO] ------------------------------------------------------------------------
定義済み変数
定義済み変数(と定義済みメソッド)には、以下のものがあります。
変数名 | 説明 | 型 |
---|---|---|
project, pom | ビルドを実行している Maven2 プロジェクト | org.codehaus.gmaven.plugin.execute. GroovyMavenProjectAdapter |
session | 実行しているビルド・セッション | org.apache.maven.execution.MavenSession |
settings | 実行しているビルドの設定 | org.apache.maven.settings.Settings |
log | SLF4J ログ・インスタンス | org.sonatype.gossip.Gossip$LoggerImpl |
ant | Ant ビルダー | groovy.util.AntBuilder |
fail() | MojoExecutionException を投げる |
- fail() の使用法、振る舞いは説明の必要はないかと。
- log はイマイチ見たことのない型な気がしますが、使い方は org.apache.maven.plugin.logging.Log と同じような感じです(「log.info('Hello world !')」とか)。 詳しくはこちら。
以降の表に出てくる「型」は次の API ドキュメントを参考にして下さい。 ただし、バージョンは少々ずれているかも知れません。
★project, pom★
プロパティ | 型 |
---|---|
activeProfiles | List |
artifact artifactId artifactMap artifacts |
org.apache.maven.artifact.Artifact String Map Set |
attachedArtifacts | List |
basedir | File |
build buildExtensions buildPlugins |
org.apache.maven.model.Build List List |
ciManagement | org.apache.maven.model.CiManagement |
class | Class |
collectedProjects | List |
compileArtifacts compileClasspathElements compileDependencies compileSourceRoots |
List List List List |
contributors | List |
defaultGoal | String |
delegate | org.apache.maven.project.MavenProject |
dependencies dependencyArtifacts dependencyManagement |
List Set org.apache.maven.model.DependencyManagement |
description | String |
developers | List |
distributionManagement distributionManagementArtifactRepository |
org.apache.maven.model.DistributionManagement org.apache.maven.artifact.repository.ArtifactRepository |
dynamicBuild dynamicCompileSourceRoots dynamicScriptSourceRoots dynamicTestCompileSourceRoots |
org.apache.maven.model.Build List List List |
executionProject extensionArtifactMap extensionArtifacts |
org.apache.maven.project.MavenProject Map Set |
file | File |
filters | List |
goalConfiguration | org.codehaus.plexus.util.xml.Xpp3Dom |
groupId | String |
id | String |
inceptionYear | String |
issueManagement | org.apache.maven.model.IssueManagement |
licenses | List |
mailingLists | List |
managedVersionMap | Map |
model modelVersion |
org.apache.maven.model.Model String |
modulePathAdjustment modules |
String List |
name | String |
organization | org.apache.maven.model.Organization |
originalInterpolatedBuild originalInterpolatedCompileSourceRoots originalInterpolatedScriptSourceRoots originalInterpolatedTestCompileSourceRoots originalModel |
org.apache.maven.model.Build List List List org.apache.maven.model.Model |
packaging | String |
parent parentArtifact |
org.apache.maven.project.MavenProject org.apache.maven.artifact.Artifact |
pluginArtifactMap pluginArtifactRepositories pluginArtifacts pluginManagement pluginRepositories |
Map List Set org.apache.maven.model.PluginManagement List |
prerequisites | org.apache.maven.model.Prerequisites |
preservedBasedir preservedProperties |
File Properties |
projectBuilderConfiguration projectReferenceId projectReferences |
org.apache.maven.project.ProjectBuilderConfiguration String Map |
properties | Properties |
remoteArtifactRepositories | List |
reportArtifactMap reportArtifacts reportConfiguration reportPlugins reporting |
Map Set org.codehaus.plexus.util.xml.Xpp3Dom List org.apache.maven.model.Reporting |
repositories | List |
resources | List |
runtimeArtifacts runtimeClasspathElements runtimeDependencies |
List List List |
scm | org.apache.maven.model.Scm |
scriptSourceRoots | List |
systemArtifacts systemClasspathElements systemDependencies |
List List List |
testArtifacts testClasspathElements testCompileSourceRoots testDependencies testResources |
List List List List List |
url | String |
version | String |
project.build
project.build で取得できるオブジェクトは org.apache.maven.model.Build のインスタンスです。 ここに定義されているプロパティは以下の通り。
プロパティ | 型 |
---|---|
class | Class |
defaultGoal | String |
directory | String |
extensions | List |
filters | List |
finalName | String |
outputDirectory | String |
pluginManagement plugins pluginsAsMap |
org.apache.maven.model.PluginManagement List Map |
resources | List |
scriptSourceDirectory | String |
sourceDirectory | String |
testOutputDirectory testResources testSourceDirectory |
String List String |
project.artifact
project.artifact で返されるオブジェクトは org.apache.maven.artifact.Artifact (正確には org.apache.maven.artifact.DefaultArtifact)のインスタンスです。 ここに定義されているプロパティは以下の通り。
プロパティ | 型 |
---|---|
artifactHandler artifactId |
org.apache.maven.artifact.handler.ArtifactHandler String |
availableVersions | List |
baseVersion | String |
class | Class |
classifier | String |
dependencyConflictId dependencyFilter dependencyTrail |
String org.apache.maven.artifact.resolver.filter.ArtifactFilter List |
downloadUrl | String |
file | File |
groupId | String |
id | String |
metadatab metadataList |
org.apache.maven.artifact.metadata.ArtifactMetadata Collection |
repository | org.apache.maven.artifact.repository.ArtifactRepository |
scope | String |
selectedVersion | org.apache.maven.artifact.versioning.ArtifactVersion |
type | String |
version versionRange |
String org.apache.maven.artifact.versioning.VersionRange |
★session★
プロパティ | 型 |
---|---|
class | Class |
container | org.codehaus.plexus.PlexusContainer |
currentProject | org.apache.maven.project.MavenProject |
eventDispatcher | org.apache.maven.monitor.event.EventDispatcher |
executionProperties executionRootDirectory |
Properties String |
goals | List |
localRepository | org.apache.maven.artifact.repository.ArtifactRepository |
pluginContext | Map |
projectBuilderConfiguration | org.apache.maven.project.ProjectBuilderConfiguration |
settings | org.apache.maven.settings.Settings |
sortedProjects | List |
startTime | Date |
userProperties | Properties |
★settings★
settings はプロクシなどの設定を行う「settings.xml」をオブジェクトにしたものです。 ファイルは以下の位置に配置するようです:
詳しくはこちら
プロパティ | 型 |
---|---|
activeProfiles activeProxy |
List org.apache.maven.settings.Proxy |
class | Class |
interactiveMode | Boolean |
localRepository | String |
mirrorOf mirrors |
org.apache.maven.settings.Mirror List |
modelEncoding | String |
pluginGroups | List |
profiles profilesAsMap |
List Map |
proxies | List |
runtimeInfo | org.apache.maven.settings.RuntimeInfo |
server servers |
org.apache.maven.settings.Server List |
sourceLevel | String |
★ant★
使い方は次回以降にでも。
プロパティ | 型 |
---|---|
antProject | org.apache.tools.ant.Project |
antXmlContext | org.apache.tools.ant.helper.AntXMLContext |
class | Class |
metaClass | groovy.lang.MetaClass |
project | org.apache.tools.ant.Project |
property | Object |
Apache Maven 2.0入門 Java・オープンソース・ビルドツール
- 作者: 野瀬直樹,横田健彦
- 出版社/メーカー: 技術評論社
- 発売日: 2006/12/13
- メディア: 大型本
- 購入: 8人 クリック: 141回
- この商品を含むブログ (97件) を見る
- 作者: Dierk Konig,Andrew Glover,Paul King,Guillaume Laforge,Jon Skeet,杉浦孝,櫻井正樹,須江信洋,関谷和愛,佐野徹郎,寺沢尚史
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2008/09/27
- メディア: 単行本(ソフトカバー)
- 購入: 5人 クリック: 146回
- この商品を含むブログ (121件) を見る