diff --git a/core/src/main/scala/coursier/core/Xml.scala b/core/src/main/scala/coursier/core/Xml.scala
index 0e5175683..8c28485d2 100644
--- a/core/src/main/scala/coursier/core/Xml.scala
+++ b/core/src/main/scala/coursier/core/Xml.scala
@@ -114,17 +114,18 @@ object Xml {
def profile(node: Node): String \/ Profile = {
import Scalaz._
+ val id = text(node, "id", "Profile ID").getOrElse("")
+
+ val xmlActivationOpt = node.child
+ .find(_.label == "activation")
+ val (activeByDefault, activation) = xmlActivationOpt.fold((Option.empty[Boolean], Activation(Nil)))(profileActivation)
+
+ val xmlDeps = node.child
+ .find(_.label == "dependencies")
+ .map(_.child.filter(_.label == "dependency"))
+ .getOrElse(Seq.empty)
+
for {
- id <- text(node, "id", "Profile ID")
-
- xmlActivationOpt = node.child
- .find(_.label == "activation")
- (activeByDefault, activation) = xmlActivationOpt.fold((Option.empty[Boolean], Activation(Nil)))(profileActivation)
-
- xmlDeps = node.child
- .find(_.label == "dependencies")
- .map(_.child.filter(_.label == "dependency"))
- .getOrElse(Seq.empty)
deps <- xmlDeps.toList.traverseU(dependency)
xmlDepMgmts = node.child
@@ -138,6 +139,7 @@ object Xml {
.find(_.label == "properties")
.map(_.child.collect{case elem if elem.isElement => elem})
.getOrElse(Seq.empty)
+
properties <- {
import Scalaz._
xmlProperties.toList.traverseU(property)
diff --git a/core/src/test/scala/coursier/test/PomParsingTests.scala b/core/src/test/scala/coursier/test/PomParsingTests.scala
index a7ddddbde..83d339acf 100644
--- a/core/src/test/scala/coursier/test/PomParsingTests.scala
+++ b/core/src/test/scala/coursier/test/PomParsingTests.scala
@@ -40,6 +40,21 @@ object PomParsingTests extends TestSuite {
assert(result == expected)
}
+ 'beFineWithProfilesWithNoId{
+ val profileNode = """
+
+
+ true
+
+
+ """
+
+ val expected = \/-(Profile("", Some(true), Activation(Nil), Nil, Nil, Map.empty))
+
+ val result = Xml.profile(xmlParse(profileNode).right.get)
+
+ assert(result == expected)
+ }
'readProfileActivatedByDefault{
val profileNode ="""