Wiki source code of Scala
Last modified by Sebastian Marsching on 2022/05/27 22:46
Hide last authors
author | version | line-number | content |
---|---|---|---|
![]() |
1.1 | 1 | {{toc/}} |
2 | |||
3 | # Scala, Maven and Eclipse | ||
4 | |||
5 | An example `pom.xml` for using Maven for Scala with the Scala IDE for Eclipse can be found at [http://lampsvn.epfl.ch/trac/scala/wiki/ScalaEclipseMaven](http://lampsvn.epfl.ch/trac/scala/wiki/ScalaEclipseMaven). | ||
6 | |||
7 | For weave4j a slightly modified `pom.xml` is used: | ||
8 | |||
9 | ```xml | ||
10 | |||
11 | <project xmlns="http://maven.apache.org/POM/4.0.0" | ||
12 | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
13 | xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||
14 | |||
15 | <artifactId>weave4j</artifactId> | ||
16 | <groupId>org.marsching.weave4j</groupId> | ||
17 | <version>1.0.0</version> | ||
18 | |||
19 | <modelVersion>4.0.0</modelVersion> | ||
20 | |||
21 | <packaging>war</packaging> | ||
22 | |||
23 | <properties> | ||
24 | <scala.version>2.7.7</scala.version> | ||
25 | <spring.version>3.0.0.RELEASE</spring.version> | ||
26 | </properties> | ||
27 | |||
28 | <dependencies> | ||
29 | |||
30 | <!-- Because this is a web app, we also have a dependency on the servlet api. --> | ||
31 | <dependency> | ||
32 | <groupId>javax.servlet</groupId> | ||
33 | <artifactId>servlet-api</artifactId> | ||
34 | <version>2.5</version> | ||
35 | <scope>provided</scope> | ||
36 | </dependency> | ||
37 | |||
38 | <!-- Data source connection pool --> | ||
39 | <dependency> | ||
40 | <groupId>commons-dbcp</groupId> | ||
41 | <artifactId>commons-dbcp</artifactId> | ||
42 | <version>1.2.2</version> | ||
43 | </dependency> | ||
44 | |||
45 | <!-- Database driver --> | ||
46 | <dependency> | ||
47 | <groupId>org.hsqldb</groupId> | ||
48 | <artifactId>hsqldb</artifactId> | ||
49 | <version>1.8.0.10</version> | ||
50 | </dependency> | ||
51 | |||
52 | <!-- Hibernate --> | ||
53 | <dependency> | ||
54 | <groupId>org.hibernate</groupId> | ||
55 | <artifactId>hibernate-core</artifactId> | ||
56 | <version>3.3.2.GA</version> | ||
57 | </dependency> | ||
58 | |||
59 | <!-- Hibernate uses slf4j for logging, for our purposes here use the simple backend --> | ||
60 | <dependency> | ||
61 | <groupId>org.slf4j</groupId> | ||
62 | <artifactId>slf4j-simple</artifactId> | ||
63 | <version>1.5.8</version> | ||
64 | </dependency> | ||
65 | |||
66 | <!-- Byte code instrumentation for Hibernate --> | ||
67 | <dependency> | ||
68 | <groupId>javassist</groupId> | ||
69 | <artifactId>javassist</artifactId> | ||
70 | <version>3.8.0.GA</version> | ||
71 | </dependency> | ||
72 | |||
73 | <!-- Spring libraries --> | ||
74 | <dependency> | ||
75 | <groupId>org.springframework</groupId> | ||
76 | <artifactId>spring-webmvc</artifactId> | ||
77 | <version>${spring.version}</version> | ||
78 | </dependency> | ||
79 | |||
80 | <dependency> | ||
81 | <groupId>org.springframework</groupId> | ||
82 | <artifactId>spring-tx</artifactId> | ||
83 | <version>${spring.version}</version> | ||
84 | </dependency> | ||
85 | |||
86 | <dependency> | ||
87 | <groupId>org.springframework</groupId> | ||
88 | <artifactId>spring-orm</artifactId> | ||
89 | <version>${spring.version}</version> | ||
90 | </dependency> | ||
91 | |||
92 | <!-- Jackson JSON Mapper --> | ||
93 | <dependency> | ||
94 | <groupId>org.codehaus.jackson</groupId> | ||
95 | <artifactId>jackson-mapper-asl</artifactId> | ||
96 | <version>1.4.1</version> | ||
97 | </dependency> | ||
98 | |||
99 | <!-- Used for Base64 decoding --> | ||
100 | <dependency> | ||
101 | <groupId>commons-codec</groupId> | ||
102 | <artifactId>commons-codec</artifactId> | ||
103 | <version>1.4</version> | ||
104 | </dependency> | ||
105 | |||
106 | <!-- Scala dependencies --> | ||
107 | <dependency> | ||
108 | <groupId>org.scala-lang</groupId> | ||
109 | <artifactId>scala-library</artifactId> | ||
110 | <version>${scala.version}</version> | ||
111 | </dependency> | ||
112 | |||
113 | <dependency> | ||
114 | <groupId>org.scala-lang</groupId> | ||
115 | <artifactId>scala-compiler</artifactId> | ||
116 | <version>${scala.version}</version> | ||
117 | </dependency> | ||
118 | |||
119 | </dependencies> | ||
120 | |||
121 | <build> | ||
122 | <plugins> | ||
123 | <plugin> | ||
124 | <groupId>org.scala-tools</groupId> | ||
125 | <artifactId>maven-scala-plugin</artifactId> | ||
126 | <version>2.7.2</version> | ||
127 | <executions> | ||
128 | <execution> | ||
129 | <id>scala-compile-first</id> | ||
130 | <phase>process-resources</phase> | ||
131 | <goals> | ||
132 | <goal>add-source</goal> | ||
133 | <goal>compile</goal> | ||
134 | </goals> | ||
135 | </execution> | ||
136 | <execution> | ||
137 | <id>scala-test-compile</id> | ||
138 | <phase>process-test-resources</phase> | ||
139 | <goals> | ||
140 | <goal>testCompile</goal> | ||
141 | </goals> | ||
142 | </execution> | ||
143 | </executions> | ||
144 | <configuration> | ||
145 | <scalaVersion>${scala.version}</scalaVersion> | ||
146 | <args> | ||
147 | <arg>-target:jvm-1.5</arg> | ||
148 | </args> | ||
149 | </configuration> | ||
150 | </plugin> | ||
151 | |||
152 | <plugin> | ||
153 | <groupId>org.apache.maven.plugins</groupId> | ||
154 | <artifactId>maven-compiler-plugin</artifactId> | ||
155 | <configuration> | ||
156 | <source>1.5</source> | ||
157 | <target>1.5</target> | ||
158 | </configuration> | ||
159 | <executions> | ||
160 | <execution> | ||
161 | <phase>compile</phase> | ||
162 | <goals> | ||
163 | <goal>compile</goal> | ||
164 | </goals> | ||
165 | </execution> | ||
166 | </executions> | ||
167 | </plugin> | ||
168 | |||
169 | <plugin> | ||
170 | <groupId>org.codehaus.mojo</groupId> | ||
171 | <artifactId>build-helper-maven-plugin</artifactId> | ||
172 | <version>1.4</version> | ||
173 | <executions> | ||
174 | <execution> | ||
175 | <id>add-source</id> | ||
176 | <phase>generate-sources</phase> | ||
177 | <goals> | ||
178 | <goal>add-source</goal> | ||
179 | </goals> | ||
180 | <configuration> | ||
181 | <sources> | ||
182 | <source>src/main/scala</source> | ||
183 | <source>src/main/java</source> | ||
184 | </sources> | ||
185 | </configuration> | ||
186 | </execution> | ||
187 | <execution> | ||
188 | <id>add-test-source</id> | ||
189 | <phase>generate-sources</phase> | ||
190 | <goals> | ||
191 | <goal>add-test-source</goal> | ||
192 | </goals> | ||
193 | <configuration> | ||
194 | <sources> | ||
195 | <source>src/test/scala</source> | ||
196 | <source>src/test/java</source> | ||
197 | </sources> | ||
198 | </configuration> | ||
199 | </execution> | ||
200 | </executions> | ||
201 | </plugin> | ||
202 | |||
203 | <plugin> | ||
204 | <artifactId>maven-eclipse-plugin</artifactId> | ||
205 | <configuration> | ||
206 | <sourceIncludes> | ||
207 | <sourceInclude>**/*.scala</sourceInclude> | ||
208 | </sourceIncludes> | ||
209 | <buildcommands> | ||
210 | <buildcommand>ch.epfl.lamp.sdt.core.scalabuilder</buildcommand> | ||
211 | </buildcommands> | ||
212 | <additionalProjectnatures> | ||
213 | <!-- | ||
214 | maven-eclipse-plugin puts this nature after | ||
215 | org.eclipse.jdt.core.javanature in .project so the project | ||
216 | will have a J badge instead of an S in the Package Explorer | ||
217 | --> | ||
218 | <projectnature>ch.epfl.lamp.sdt.core.scalanature</projectnature> | ||
219 | </additionalProjectnatures> | ||
220 | <classpathContainers> | ||
221 | <classpathContainer>org.eclipse.jdt.launching.JRE_CONTAINER</classpathContainer> | ||
222 | <classpathContainer>ch.epfl.lamp.sdt.launching.SCALA_CONTAINER</classpathContainer> | ||
223 | </classpathContainers> | ||
224 | </configuration> | ||
225 | </plugin> | ||
226 | |||
227 | </plugins> | ||
228 | </build> | ||
229 | |||
230 | <reporting> | ||
231 | <plugins> | ||
232 | <plugin> | ||
233 | <groupId>org.scala-tools</groupId> | ||
234 | <artifactId>maven-scala-plugin</artifactId> | ||
235 | <version>2.7.2</version> | ||
236 | <configuration> | ||
237 | <scalaVersion>${scala.version}</scalaVersion> | ||
238 | </configuration> | ||
239 | </plugin> | ||
240 | </plugins> | ||
241 | </reporting> | ||
242 | |||
243 | |||
244 | </project> | ||
245 | ``` |