RommelTJ
RommelTJ

Reputation: 741

Maven Compilation error: cannot find symbol with local dependecies

When I run "mvn compile" on my Maven project, I get error messages like the following:

[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /Users/rommelrico/Documents/GitHub/github.sandiego.edu/SeniorSurvey/src/main/java/edu/sandiego/custom/SeniorSurveyPortlet.java:[4,37] cannot find symbol
symbol  : class Person
location: package com.sghe.luminis.person.entity

I have a set of closed-source files that I installed as follows:

mvn install:install-file -Dfile=aspectjrt.jar -DgroupId=some.group -DartifactId=aspectjrt -Dversion=1 -Dpackaging=jar

And when I list the Maven dependencies, they appear to be fine (no errors):

[INFO] ------------------------------------------------------------------------
[INFO] Building SeniorSurvey Portlet 0.0.1
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-dependency-plugin:2.8:list (default-cli) @ SeniorSurveyPortlet ---
[INFO] 
[INFO] The following files have been resolved:
[INFO]    some.group:util-taglib:jar:1:compile
[INFO]    some.group:sqljdbc4:jar:1:compile
[INFO]    some.group:util-java:jar:1:compile
[INFO]    some.group:luminis-security-base:jar:1:compile
[INFO]    com.googlecode.json-simple:json-simple:jar:1.1:compile
[INFO]    commons-logging:commons-logging:jar:1.1.1:compile
[INFO]    some.group:luminis-security-policy:jar:1:compile
[INFO]    log4j:log4j:jar:1.2.12:compile
[INFO]    javax.servlet:jstl:jar:1.1.2:compile
[INFO]    some.group:util-bridges:jar:1:compile
[INFO]    some.group:aspectjrt:jar:1:compile
[INFO]    some.group:luminis-session:jar:1:compile
[INFO]    org.json:json:jar:20090211:compile
[INFO]    some.group:luminis-dal:jar:1:compile
[INFO]    taglibs:standard:jar:1.0.4:compile
[INFO]    some.group:spring-2.5.5:jar:1:compile
[INFO]    xml-apis:xml-apis:jar:1.0.b2:compile
[INFO]    some.group:jasig-cas-client-core-3.1.3:jar:1:compile
[INFO]    some.group:spring-security-cas-client-2.0.5.RELEASE:jar:1:compile
[INFO]    some.group:spring-security-core-2.0.5.RELEASE-mod:jar:1:compile
[INFO]    org.jsoup:jsoup:jar:1.7.2:compile
[INFO]    some.group:luminis-person:jar:1:compile
[INFO]    com.sun.jersey:jersey-client:jar:1.8:compile
[INFO]    com.sun.jersey:jersey-core:jar:1.8:compile
[INFO]    xalan:xalan:jar:2.6.0:compile
[INFO]    some.group:luminis-util:jar:1:compile
[INFO]    some.group:luminis-security-springweb:jar:1:compile
[INFO]    org.apache.portals.pluto:pluto-taglib:jar:2.0.0:provided
[INFO]    javax.servlet:servlet-api:jar:2.4:compile
[INFO]    javax.portlet:portlet-api:jar:2.0:provided
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.177 s
[INFO] Finished at: 2014-09-24T12:02:59-08:00
[INFO] Final Memory: 8M/81M
[INFO] ------------------------------------------------------------------------

My POM dependencies:

<dependencies>
    <dependency>
        <groupId>javax.portlet</groupId>
        <artifactId>portlet-api</artifactId>
        <version>2.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.1.2</version>
    </dependency>
    <dependency>
        <groupId>taglibs</groupId>
        <artifactId>standard</artifactId>
        <version>1.0.4</version>
    </dependency>
    <dependency>
        <groupId>org.jsoup</groupId>
        <artifactId>jsoup</artifactId>
        <version>1.7.2</version>
    </dependency>

    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20090211</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-client</artifactId>
        <version>1.8</version>
    </dependency>
    <dependency>
        <groupId>com.googlecode.json-simple</groupId>
        <artifactId>json-simple</artifactId>
        <version>1.1</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.4</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.12</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.1.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.portals.pluto</groupId>
        <artifactId>pluto-taglib</artifactId>
        <version>2.0.0</version>
        <scope>provided</scope>
    </dependency>


    <dependency>
        <groupId>some.group</groupId>
        <artifactId>aspectjrt</artifactId>
        <version>1</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>some.group</groupId>
        <artifactId>jasig-cas-client-core-3.1.3</artifactId>
        <version>1</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>some.group</groupId>
        <artifactId>luminis-dal</artifactId>
        <version>1</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>some.group</groupId>
        <artifactId>luminis-person</artifactId>
        <version>1</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>some.group</groupId>
        <artifactId>luminis-security-base</artifactId>
        <version>1</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>some.group</groupId>
        <artifactId>luminis-security-policy</artifactId>
        <version>1</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>some.group</groupId>
        <artifactId>luminis-security-springweb</artifactId>
        <version>1</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>some.group</groupId>
        <artifactId>luminis-session</artifactId>
        <version>1</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>some.group</groupId>
        <artifactId>luminis-util</artifactId>
        <version>1</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>some.group</groupId>
        <artifactId>spring-2.5.5</artifactId>
        <version>1</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>some.group</groupId>
        <artifactId>spring-security-cas-client-2.0.5.RELEASE</artifactId>
        <version>1</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>some.group</groupId>
        <artifactId>spring-security-core-2.0.5.RELEASE-mod</artifactId>
        <version>1</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>some.group</groupId>
        <artifactId>sqljdbc4</artifactId>
        <version>1</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>some.group</groupId>
        <artifactId>util-bridges</artifactId>
        <version>1</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>some.group</groupId>
        <artifactId>util-java</artifactId>
        <version>1</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>some.group</groupId>
        <artifactId>util-taglib</artifactId>
        <version>1</version>
        <scope>compile</scope>
    </dependency>
</dependencies>

And my IntelliJ settings: enter image description here

In IntelliJ, my imports and code is not "red" meaning it can resolve it to the jar files. But when I run mvn compile it says "cannot find symbol". What's more frustrating is that if I do the same thing in Eclipse, it works fine, but in IntelliJ it doesn't. What is the problem? It's driving me crazy.

Upvotes: 2

Views: 3911

Answers (1)

James Baxter
James Baxter

Reputation: 1246

Hold CTRL and click on the person class on line 4 of SeniorSurveyPortlet.

You should see the file location in the IntelliJ window title.

The location should be an artifact in your local maven repo (i.e a directory named .m2).

The path contains the groupId, artifactId and version.

Ensure that the dependency is listed correctly in the pom.

Upvotes: 1

Related Questions