Portál AbcLinuxu, 18. května 2025 07:36
Řešení dotazu:
jar
, jako u ostatních knihoven. Když používáte Maven, repozitář na svém PC už vytvořen máte, stahují se do něj všechny závislosti a instalují se tam vámi sestavené aplikace při mvn install
.
Především ale budete potřebovat přečíst si něco o základech Mavenu, ten se nedá pro vývoj používat tak, že jen někde něco spustíte a ono se to samo udělá. Musíte vědět, jak se v něm projekt popisuje, co jsou závislosti atd.
pom.xml
připojíte.
Pokud mám dependence, které si musí maven odněkud stáhnout, pak se mi načtou i do eclipsu. Problem je s tím, když je to ten projekt, který mám jenom já na PC. Zkušel jsem do pom.xml přidat i <repository> přímo s <url>, kde mám já na PC ten repozitář, ale také to nepomohlo.
Nyní ty pom.xml vypadají jen takto (mám tu jen klasickou aplikaci: myAppl):
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cz.test.myAppl</groupId>
<artifactId>myAppl</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>myAppl</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>cz.test.myUtils</groupId>
<artifactId>myUtils</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
A tady myUtisl:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cz.test.myUtils</groupId>
<artifactId>myUtils</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>myUtils</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
A do myAppl se snažím přidat myUtisl.
pom.xml
vypadají správně. Když teď myUtils
skompilujete, sestavíte a nainstalujete do lokálního repository (příkazem mvn install
), Maven jej bude umět používat jako každou jinou závislost.
mvn install
nainstalujete do lokálního repository, je to pro Maven knihovna jako jakákoli jiná. Nevím, jakým způsobem přebírá Eclipse závislosti z Mavenu, ale není důvod, proč by tuto závislost neměl převzít. Napadá mne jedině to, zda nemáte jinak nadefinovaný MAVEN_HOME
pro externí Maven (z příkazové řádky) a jiný pro Eclipse. Tj. že by Eclipse hledal jinde, než kam projekt pomocí mvn install
nainstalujete. Zkuste to najít v konfiguraci Eclipse a podívat se, zda je v tom repository vaše knihovna uložená.
mvn eclipse:eclipse
Toto vygeneruje .classpath a .project (na zavislosti sa odkazuje cez premennu M2_REPO - treba ju bud nastavit rucne, alebo prikazom)
mvn -Declipse.workspace=<path-to-eclipse-workspace>> eclipse:add-maven-repo
Plugin eclipsy - m2eclipse prida priamo v importovani projektu volbu "import as maven project" - a malo by sa to samo postarat o zavislosti.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.