Pistolfly のすべての投稿

Software Engineer in Tokyo, Japan

mavenのビルドでエラー

ソースのバージョン - TzlTTqTjの日記
mavenでのビルドで以下のようなエラーが。

[11,5] 注釈は -source 1.3 でサポートされていま
せん
(注釈を使用可能にするには、-source 5 以降を使用してください)
総称型は -source 1.3 でサポートされていません
(総称型を使用可能にするには、-source 5 以降を使用してください)

以下のように、pom.xmlにmaven-compiler-pluginのsourceとtargetを指定する。

<plugins>
	<plugin>
		<groupId>org.apache.maven.plugins</groupId>
		<artifactId>maven-compiler-plugin</artifactId>
		<configuration>
			<source>1.6</source>
			<target>1.6</target>
		</configuration>
	</plugin>
</plugins>

Debugging through Maven Tomcat plugin by Eclipse

kadir pekel » Blog Archive » Debugging through Maven Tomcat plugin by Eclipse
Dealing with Eclipse-based IDE - Maven User - Codehaus
Spring-MVC/ステップ・バイ・ステップ/mavenプロジェクトのデバッグ - PukiWiki
上から2番目のリンク先に書いてあるけど、maven 2.0.8 以降なら、mvnDebugが使えるので、これが一番簡単。

$ cd project_path
$ mvnDebug tomcat:run

※mvnDebugはMAVEN_HOME/binにある。
次にEclipseのプロジェクトで右クリックして、Debug as > Debug Configuration... > Remote Java Application > new で debug。

mavenで、[WARNING] Using platform encoding (SJIS actually) to copy filtered resources, i.e. build is platform dependent!

mavenでのコンパイルで以下の警告が出る。

[INFO] [resources:resources {execution: default-resources}]
[WARNING] Using platform encoding (SJIS actually) to copy filtered resources, i.e. build is platform dependent!

試験管のなかのコード :: Maven Resource Plugin のワーニング
pom.xmlに以下を追加したら出なくなった。

<project>
  ...
	<build>
	  ...
		<pluginManagement>
			<plugins>
				<plugin>
					<artifactId>maven-resources-plugin</artifactId>
					<configuration>
						<encoding>UTF-8</encoding>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
</project>

org.springframework.web.servlet.DispatcherServlet cannot be cast to javax.servlet.Servlet

[#MOJO-1076] org.springframework.web.servlet.DispatcherServlet cannot be cast to javax.servlet.Servlet - jira.codehaus.org
mvn tomcat:run で org.springframework.web.servlet.DispatcherServlet cannot be cast to javax.servlet.Servlet が発生する。
原因は、pom.xmlで

<dependency>
	<groupId>javax.servlet</groupId>
	<artifactId>servlet-api</artifactId>
	<version>2.5</version>
</dependency>

としていたから。
Servlet APIは、コンパイル時には必要だが実行時には不要(サーブレットコンテナにより提供される)なので、こういう場合はscopeにprovidedを指定する。

<dependency>
	<groupId>javax.servlet</groupId>
	<artifactId>servlet-api</artifactId>
	<version>2.5</version>
	<scope>provided</scope>
</dependency>