tanamonの稀に良く書く日記

KEEP CALM AND DRINK BEER

Spring Rooの動作(1) - projectコマンド

Spring Roo 1.1.0.M1 [rev 3a0b8a3]で試した結果です

projectコマンド

  • プロジェクトのひな形を作成するコマンド
  • 2回実行することはできないので、変更したくなったら手動で変更する

オプション

--topLevelPackage [packageName]
  • [packageName]にはcom.example.rooなどのJavaのパッケージを指定する
  • pom.xmlの/project/groupIdに設定される
  • rooコマンドの「~」で指定されるパッケージになる
--projectName [projectName]
  • [projectName]にはプロジェクト名称(英数字のみが望ましい)を指定する
  • pom.xmlの/project/artifactId, /project/nameに設定される
  • デフォルトでは、topLevelPackageの最後の部分が入る
--java [version]
  • [version]には5,6,7を指定する(4以下を指定すると無視されるっぽい)
  • pom.xmlmaven-compiler-pluginのconfiguration/sourceとconfiguration/targetが指定バージョンになる
<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-compiler-plugin</artifactId>
	<version>2.1</version>
	<configuration>
		<source>1.6</source>
		<target>1.6</target>
	</configuration>
</plugin>
  • sourceとtargetを別のバージョンにしたい場合はpom.xmlを手で修正する
  • aspectj-maven-pluginのconfiguration/source, targetが指定バージョン(1.x)になる
<plugin>
	<groupId>org.codehaus.mojo</groupId>
	<artifactId>aspectj-maven-plugin</artifactId>
	<version>1.0</version>
	<dependencies>
		<!-- NB: You must use Maven 2.0.9 or above or these are ignored (see MNG-2972) -->
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjrt</artifactId>
			<version>${aspectj.version}</version>
		</dependency>
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjtools</artifactId>
			<version>${aspectj.version}</version>
		</dependency>
	</dependencies>
	<executions>
		<execution>
			<goals>
				<goal>compile</goal>
				<goal>test-compile</goal>
			</goals>
		</execution>
	</executions>
	<configuration>
		<outxml>true</outxml>
		<aspectLibraries>
			<aspectLibrary>
				<groupId>org.springframework</groupId>
				<artifactId>spring-aspects</artifactId>
			</aspectLibrary>
		</aspectLibraries>
		<source>1.5</source>
		<target>1.5</target>
	</configuration>
</plugin>
  • [version]に5を指定した場合のみ、javax.annotation:jsr250-apiが追加される
<dependency>
	<groupId>javax.annotation</groupId>
	<artifactId>jsr250-api</artifactId>
	<version>1.0</version>
</dependency>
--template [templateName]
  • [templateName]がSTANDARD_PROJECTの場合、
    • pom.xmlの/project/packagingがjar用のテンプレートが作られる
    • 普通のプロジェクト用。war等にしたい場合は別のコマンドで変える
  • [templateName]がROO_ADDON_SIMPLEの場合、
    • pom.xmlの/project/packagingがbundleになる
    • OSGiのbundle用(詳しく知らない)

使い方

roo> project --topLevelPackage com.example.sandbox
Created C:\apps\eclipse3.5\workspace\test\pom.xml
Created SRC_MAIN_JAVA
Created SRC_MAIN_RESOURCES
Created SRC_TEST_JAVA
Created SRC_TEST_RESOURCES
Created SRC_MAIN_WEBAPP
Created SRC_MAIN_RESOURCES\META-INF\spring
Created SRC_MAIN_RESOURCES\META-INF\spring\applicationContext.xml
Created SRC_MAIN_RESOURCES\log4j.properties
roo> project --topLevelPackage com.example.sandbox --projectName sandboxProject --java 6
Created C:\apps\eclipse3.5\workspace\test\pom.xml
Created SRC_MAIN_JAVA
Created SRC_MAIN_RESOURCES
Created SRC_TEST_JAVA
Created SRC_TEST_RESOURCES
Created SRC_MAIN_WEBAPP
Created SRC_MAIN_RESOURCES\META-INF\spring
Created SRC_MAIN_RESOURCES\META-INF\spring\applicationContext.xml
Created SRC_MAIN_RESOURCES\log4j.properties