Question

I am trying to use classes from my subproject(NanoKBIndex) in main play project (NanoKBWeb). The Play project "NanoKBWeb" has the following directory structure.

└── NanoKBWeb
    ├── NanoKBIndex
    ├── app
    │   ├── Global.java
    │   ├── controllers
    │   ├── models
    │   └── views
    ├── build.sbt
    ├── conf
    │   ├── application.conf
    │   ├── components.xml
    │   ├── messages
    │   ├── routes
    ├── logs
    │   └── application.log
    ├── project
    │   ├── build.properties
    │   ├── plugins.sbt
    ├── public

NanoKBWeb has the following build.sbt.

name := "NanoKBWeb"

version := "1.0"

libraryDependencies ++= Seq(javaJdbc, javaEbean, 
"org.springframework" % "spring-context" % "4.0.1.RELEASE",
"org.apache.lucene" % "lucene-core" % "3.5.0",
"org.apache.lucene" % "lucene-facet" % "3.5.0",
"org.apache.lucene" % "lucene-queryparser" % "3.5.0",
"org.json" % "json" % "20140107"
)

playJavaSettings

lazy val NanoKBIndex  = project.in( file("NanoKBIndex") )

lazy val NanoKBWeb = project.in(file("."))
    .aggregate(NanoKBIndex)
    .dependsOn(NanoKBIndex)

"NanoKBIndex" has the following directory structure.

├── data
├── lib
├── build.sbt
├── src
│   ├── br
│   │   └── com
│   │       └── caelum
│   │           └── vraptor
│   │               └── blank
│   └── org
│       └── nanokb
│           ├── api
│           ├── common
│           ├── index
│           ├── integration
│           ├── interpreter
│           ├── object
│           ├── search
│           └── test

NanoKBIndex has the following build.sbt.

name := "NanoKBIndex"

version:= "1.0"

libraryDependencies ++= Seq("org.json" % "json" % "20140107",
                    "edu.stanford.nlp" % "stanford-corenlp" % "3.3.1",
                    "edu.stanford.nlp" % "stanford-parser" % "3.3.1",
                     "br.com.caelum" % "vraptor" % "3.5.3"
)

The play project(NanoKBWeb) uses many classes from the sub project (NanoKBIndex). When I run "play compile" for NanoKBWeb, it gives error on all classes from the NanoKBIndex.

[info] Loading project definition from /Users/test/NanoKBWeb/project
[info] Set current project to NanoKBWeb (in build file:/Users/test/NanoKBWeb/)
[info] Compiling 10 Scala sources and 13 Java sources to /Users/test/NanoKBWeb/target/scala-2.10/classes...
[error] /Users/test/NanoKBWeb/app/controllers/Application.java:19: error: package org.nanokb.object does not exist
[error] import org.nanokb.object.NanoPubProvenance;
[error]                         ^
[error] /Users/test/NanoKBWeb/app/service/NanoPublicationService.java:30: error: package org.nanokb.api does not exist
[error] import org.nanokb.api.KBInputManager;
[error]                      ^
[error] /Users/test/NanoKBWeb/app/service/NanoPublicationService.java:31: error: package org.nanokb.api does not exist
[error] import org.nanokb.api.KBQueryEngine;
[error]                      ^
[error] /Users/test/NanoKBWeb/app/service/NanoPublicationService.java:32: error: package org.nanokb.object does not exist
[error] import org.nanokb.object.Entity;
[error]                         ^
[error] /Users/test/NanoKBWeb/app/service/NanoPublicationService.java:33: error: package org.nanokb.object does not exist
[error] import org.nanokb.object.NanoPub;

Can someone please guide on what I am missing here?

Était-ce utile?

La solution

├── src
       ├── main
            ├── scala
                 ├── br
                 │   └── com
                 │       └── caelum
                 │           └── vraptor
                 │               └── blank
                 └── org
                     └── nanokb
                         ├── api
                         ├── common
                         ├── index
                         ├── integration
                         ├── interpreter
                         ├── object
                         ├── search
                         └── test

You need SBT project structure http://www.scala-sbt.org/release/docs/Getting-Started/Directories.html#source-code

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top