[Java] Automatische imports werken niet voor dependency

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een pakket waarvoor ik een plugin moet schrijven. Om de development van deze plugin te scheiden van de ontwikkeling van het originele pakket maak ik gebruik van Maven. Even kort een beschrijving van mijn stappen:
  1. Het orginele pakket is geen Maven project, ik heb de sources hiervan eerst toegevoegd aan een nieuw Maven project.
  2. Met behulp van de Maven assembly plugin heb ik een jarretje gebakken met alle dependencies.
  3. Dit jarretje heb ik geupload naar mijn locale repository.
  4. Vervolgens heb ik een nieuw Maven project gemaakt voor mijn plugin, welke de JAR van het originele packet als dependency heeft.
Alles werkt helemaal prima, behalve de automatische imports. Als ik een instantie wil hebben van de klasse in het originele pakket dan kan hij deze niet vinden. Als ik echter handmatig de import regel toevoeg dan is er niks aan de hand en werkt het geheel. Het gekke is dat hij wel de klassen kan vinden, maar niet de packages. Dus als ik intik import pakket.<auto complete> dan vindt hij niks, vul ik het aan tot import pakket.model.<auto complete> dan vindt hij wel alle klasses die hieronder vallen.

Ik maak gebruik van Netbeans 6.7.1 (na jarenlang Eclipse gebruikt te hebben), maar ik heb niet het idee dat het aan de IDE ligt. Dingen uit andere dependencies (bijvoorbeeld commons-logging) kan hij wel automatisch vinden.

Ik verwacht dat ik iets fout doe bij het maken van de JAR (moet hij ook toegang hebben tot de source? en zo ja hoe?). Dit is namelijk vrij vervelend, nu moet ik voor elke klasse opzoeken in welke package hij zit alvorens ik hem kan instantieren.

Acties:
  • 0 Henk 'm!

  • Standeman
  • Registratie: November 2000
  • Laatst online: 12:18

Standeman

Prutser 1e klasse

Heb je commons-logging ook via maven toegevoegd of heb je die in je libraries geconfgureerd? Het kan natuurlijk een bug zijn? Ik heb wel vaker van bugs last met Netbeans 6.7.* (o.a. in de debugger) en ben daarom bij 6.5 gebleven.

The ships hung in the sky in much the same way that bricks don’t.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ja commons-logging is ook via Maven als dependency toegevoegd. Ik bedenk me nu pas dat ik natuurlijk ook even bij libaries kon kijken. Als ik hier kijk zie ik zowel mijn pakket er tussen staan maar ook commons-logging. Het grootte verschil is dat ik bij commons-logging een extra icoontje zie staan, een klein package icoontje. Dit zie ik bij mijn pakket niet. Als ik echter mijn pakket openklap dan zie ik daar wel alle packages onderstaan.

Bij de properties van mijn pakket en die van commons-logging is het verschil dat hij bij commons-logging aangeeft dat hij de sources lokaal heeft, dit is niet het geval bij mijn pakket. Ik verwacht dus dat hier het probleem ligt (toch gek dat hij de sources nodig heeft). Ik ga maar eens googlen hoe ik Maven ook de sources laat exporteren.

Acties:
  • 0 Henk 'm!

  • Salandur
  • Registratie: Mei 2003
  • Laatst online: 17-09 23:51

Salandur

Software Engineer

als je de sources hebt van je pakket is dat niet zo moeilijk:
maak een jar met de sources en noem deze <pakket>-<versie>-sources.jar en installeer deze in je maven repository met het vollende commando:
code:
1
mvn install:install-file -DgroupId=<pakket-groupid> -DartifactId=<pakket-artifactid> -Dversion=<pakket-versie> -Dclassifier=sources -Dfile=<je file>


Laat vervolgens maven je netbean files opnieuw creeren of koppel deze in netbeans

Assumptions are the mother of all fuck ups | iRacing Profiel


Acties:
  • 0 Henk 'm!

  • Standeman
  • Registratie: November 2000
  • Laatst online: 12:18

Standeman

Prutser 1e klasse

De sources zijn v.z.i.w. niet nodig om automatisch te laten importeren. Ik heb meerdere libraries (welliswaar niet via maven) die gewoon importeren.

Ik bedenk nu dat er wel 1 suffe bug in Netbeans 6.5 zit (geen flauw idee of deze ook in 6.7 zit) en dat is wanneer je Netbeans opstart met een open J2ME source file, dat je een hoop dingen mist zoals automatisch importeren (alt-i) en "Navigate > Go to source" in je context menu.

Netbeans opstarten zonder openstaande sources zou dan moeten werken.

[ Voor 7% gewijzigd door Standeman op 28-10-2009 11:38 ]

The ships hung in the sky in much the same way that bricks don’t.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ga even kijken naar die sources (die heb ik namelijk). Ik heb geen J2ME file open staan. Verder werken automatische imports wel gewoon voor andere pakketten.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het werkt :). Blijkbaar heeft Netbeans de sources nodig voor automatische imports. Snap niet helemaal waarom maar het is voor dit project in ieder geval geen probleem.

Bedankt!

Acties:
  • 0 Henk 'm!

  • Standeman
  • Registratie: November 2000
  • Laatst online: 12:18

Standeman

Prutser 1e klasse

Netbeans heeft hier en daar wel vaker "vreemde" trekjes of kleine (irritante) bugs.

The ships hung in the sky in much the same way that bricks don’t.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik was ze nog niet tegen gekomen, tot nu toe vind ik het een erg grootte verbetering ten opzichte van Eclipse.
Pagina: 1