2017-07-18 2 views
3

Nouveau sur Scala et sbt; provenant d'un monde python, et plutôt confus par les dépendances de bibliothèques, les versions, et ce que sbt peut et ne peut pas télécharger automatiquement (c'est-à-dire quand un .jar doit être placé manuellement dans/lib).Comment inclure geoscript comme dépendance dans le projet Scala intelliJ?

Je souhaite utiliser des classes du projet Scala Geoscript (http://geoscript.org/scala/quickstart.html) dans mon application Scala. J'utilise IntelliJ avec Scala 2.11.8.

Puis-je en fin de compte faire quelque chose comme:

libraryDependencies += "org.geoscript" % "some-artifact" % some=version

Ou est-ce que ça va être une « dépendance non géré »? Et si oui, quelle est la façon la plus propre de le faire?

Répondre

1

Si un jar de dépendance est publié à Maven Central et d'autres référentiels, sbt sera automatiquement capable de le résoudre et de le télécharger lorsqu'il le déclarera libraryDependency. C'est une "dépendance managée". Habituellement, la documentation d'une bibliothèque vous indique les «coordonnées» (identifiant de groupe, identifiant d'artefact, version) dont vous avez besoin pour l'installer. A partir de la page que vous avez liée et de la recherche Maven, il semble que Geoscript ne soit pas publié. Vous devrez donc l'ajouter à votre dossier /lib dans le projet. Cela devrait suffire à le mettre dans le classpath. Vous devrez peut-être actualiser le projet pour IntelliJ pour le ramasser et offrir des complétions.

+0

Merci pour la réponse Justin. J'ai essayé de construire puis de mettre en forme le projet dans un .jar, et l'ai ajouté aux bibliothèques externes de mon projet. Tandis que les instructions d'importation fonctionnaient (intelliJ était capable de localiser les classes), l'utilisation de la bibliothèque a effectivement jeté beaucoup de «symbole non résolu» malgré les importations réussies - quelques problèmes de dépendance sous-jacents. En tout cas, je vais aller à KISS et trouver un autre projet géospatial inclus dans Maven Central. Merci! – EyeWrite

+0

Si vous empaquetez votre propre jar basé sur l'autre bibliothèque et l'utilisez dans un autre projet, vous devrez placer votre jar et l'autre jar sur le classpath. sbt fait cela pour vous avec des dépendances gérées, mais avec unmanged vous devez le faire vous-même –